Как работают async/await?

Middle
424 просмотров
AFK Offer AI

async def объявляет корутину. await приостанавливает выполнение корутины до получения результата. await можно использовать только внутри async def. За кулисами: await — это yield для event loop, корутина «засыпает» и loop может выполнять другие корутины. await принимает awaitable объекты: корутины, Task, Future. Без await корутина не выполнится — частая ошибка новичков. Нельзя await синхронную функцию — нужно обернуть в asyncio.to_thread() или run_in_executor().

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

Как устроена обработка исключений в Python?