Назад к подготовке

Что значит await в асинхронном Python

Объясните, что делает await в asyncio и почему он важен для неблокирующего сервиса.

Ответить самому

Сначала сформулируйте ответ как на собеседовании, затем откройте разбор и оцените себя.

Загрузка

Короткий ответ

await приостанавливает coroutine до завершения awaitable и возвращает управление event loop, чтобы другие задачи могли выполняться.

Полный разбор

asyncio использует cooperative multitasking. Когда coroutine доходит до await на сетевом запросе, sleep, stream read или другой awaitable операции, она не держит поток занятым ожиданием.

Управление возвращается event loop, который может выполнить другие coroutines. Это полезно для I/O-bound сервисов: много запросов ждут сеть, БД или API. await не делает CPU-bound код параллельным; тяжелые вычисления нужно выносить в process pool, native code или отдельный worker.