Event loop выполняет готовые callbacks и шаги корутин, а при ожидании I/O передаёт управление другим задачам. Конкурентность возникает за счёт переключения, не обязательного параллелизма.
Как работают event loop (цикл событий) и асинхронность в Python?
Event loop выполняет готовые callbacks и шаги корутин, а при ожидании I/O передаёт управление другим задачам. Конкурентность возникает за счёт переключения, не обязательного параллелизма.
Короткий ответ
Что ответить на собеседовании
Подробный разбор
Ответ с пояснениями
Event loop выполняет готовые callbacks и шаги корутин, а при ожидании I/O передаёт управление другим задачам. Конкурентность возникает за счёт переключения, не обязательного параллелизма.
Корутина при await незавершённой операции приостанавливается; после готовности loop продолжает её. Таймеры и события сокетов пополняют очередь готовой работы. Длительный синхронный код блокирует этот цикл, поэтому его выносят в подходящий executor или переписывают на неблокирующий API. Отмена, тайм-ауты и backpressure входят в нормальную модель работы, а не являются дополнительной косметикой.