В asyncio корутины кооперативно делят поток event loop: задача выполняется до приостановки, после чего цикл может продвинуть другие готовые задачи или дождаться событий I/O.
Как устроена асинхронность в Python?
В asyncio корутины кооперативно делят поток event loop: задача выполняется до приостановки, после чего цикл может продвинуть другие готовые задачи или дождаться событий I/O.
Короткий ответ
Что ответить на собеседовании
Подробный разбор
Ответ с пояснениями
В asyncio корутины кооперативно делят поток event loop: задача выполняется до приостановки, после чего цикл может продвинуть другие готовые задачи или дождаться событий I/O.
async def создаёт корутинную функцию, await ожидает awaitable. Вызов корутинной функции сам по себе ещё не запускает её; исполнение организуют через await, Task или asyncio.run. Не всякий await обязательно приостанавливает выполнение, если результат уже готов. CPU-цикл без передачи управления блокирует остальных. Обзор asyncio.