Встречается на собеседованиях • сегодня

Зачем нужна асинхронность

Асинхронность нужна для эффективной работы с I/O-операциями, когда задача большую часть времени простаивает в ожидании внешних ресурсов

Один поток может обрабатывать множество задач одновременно, не блокируя выполнение на время ожидания.

Когда использовать:

- Сетевые запросы (API, веб-скрейпинг)

- Работа с БД

- Веб-серверы (обработка тысяч соединений)

- Чат-боты и мессенджеры

Пример:

text
import asyncio

async def fetch_data(url):
    # Имитация долгого сетевого запроса
    await asyncio.sleep(2)  
    return f"Данные с {url}"

async def main():
    # Запускаем 3 задачи параллельно
    results = await asyncio.gather(
        fetch_data("https://api1.com"),
        fetch_data("https://api2.com"),
        fetch_data("https://api3.com")
    )
    print(results)

# Выполнить за ~2 секунды вместо 6
asyncio.run(main())

Преимущества:

- Высокая производительность для I/O-задач

- Экономия ресурсов (не нужны дополнительные потоки)

- Масштабируемость (тысячи одновременных соединений)

Не для всего:

Не подходит для CPU-bound задач (математические вычисления, обработка изображений) — для них лучше многопроцессорность.

Sophi
Софи собрала все вопросы. Тренируйся и получай
офферы быстрее!
Попробовать бесплатноArrow

Следующий вопрос

Это единственный вопрос по вашему фильтру

как отвечать на вопрос
пример собеседования
фреймворки на собеседовании
типичные вопросы junior
интервью вопросы и ответы