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

Как работает модуль asyncio

asyncio — это библиотека для написания конкурентного кода с использованием корутин (coroutines) через синтаксис async/await. Основные компоненты:

  • Event Loop — управляет выполнением задач, переключаясь между ними при блокирующих операциях (I/O, sleep).
  • Coroutines — функции, объявленные через async def, которые могут приостанавливать выполнение через await.
  • Tasks — обёртки вокруг корутин, планируемые в event loop.
  • Futures — объекты, представляющие результат асинхронной операции.

Пример:

python
import asyncio

async def fetch_data():
    print("Начинаем загрузку...")
    await asyncio.sleep(2)  # Имитация I/O операции
    print("Данные загружены")
    return {"data": 123}

async def main():
    task = asyncio.create_task(fetch_data())
    print("Делаем что-то параллельно...")
    await task  # Ожидаем завершения задачи
    print("Результат:", task.result())

asyncio.run(main())

Ключевые моменты:

  • await передаёт управление обратно в event loop.
  • asyncio.run() запускает event loop.
  • Задачи (Tasks) выполняются конкурентно, но не параллельно (если нет многопоточности).
  • Подходит для I/O-bound задач (сеть, файлы), но не для CPU-bound.
Sophi
Софи собрала все вопросы. Тренируйся и получай
офферы быстрее!
Попробовать бесплатноArrow

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

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

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