Как устроена асинхронность в Python?

В asyncio корутины кооперативно делят поток event loop: задача выполняется до приостановки, после чего цикл может продвинуть другие готовые задачи или дождаться событий I/O.

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

Что ответить на собеседовании

В asyncio корутины кооперативно делят поток event loop: задача выполняется до приостановки, после чего цикл может продвинуть другие готовые задачи или дождаться событий I/O.

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

Ответ с пояснениями

В asyncio корутины кооперативно делят поток event loop: задача выполняется до приостановки, после чего цикл может продвинуть другие готовые задачи или дождаться событий I/O.

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

Практика в реальном времени

Подготовьтесь к следующему собеседованию

Interview Boost учитывает вакансию, резюме и технологии и помогает сформулировать ответ прямо во время интервью.

Начать подготовку