Как работают event loop (цикл событий) и асинхронность в Python?

Event loop выполняет готовые callbacks и шаги корутин, а при ожидании I/O передаёт управление другим задачам. Конкурентность возникает за счёт переключения, не обязательного параллелизма.

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

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

Event loop выполняет готовые callbacks и шаги корутин, а при ожидании I/O передаёт управление другим задачам. Конкурентность возникает за счёт переключения, не обязательного параллелизма.

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

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

Event loop выполняет готовые callbacks и шаги корутин, а при ожидании I/O передаёт управление другим задачам. Конкурентность возникает за счёт переключения, не обязательного параллелизма.

Корутина при await незавершённой операции приостанавливается; после готовности loop продолжает её. Таймеры и события сокетов пополняют очередь готовой работы. Длительный синхронный код блокирует этот цикл, поэтому его выносят в подходящий executor или переписывают на неблокирующий API. Отмена, тайм-ауты и backpressure входят в нормальную модель работы, а не являются дополнительной косметикой.

ИИ-помощник для собеседований

Хочешь уверенно проходить собеседования?

Попробуй ИИ-помощник для собеседований: слышит вас и собеседника, анализирует экран, подсказывает ответы в реальном времени, работает без VPN и не попадает в захват экрана.

Подробнее