Встречается на 3% собеседований по Python

Как работает Event Loop

Event Loop — это механизм, который позволяет Python (в частности, asyncio) выполнять асинхронные операции, управляя выполнением корутин и переключаясь между ними при ожидании I/O.

Основные принципы:

  1. Цикл событий постоянно проверяет очередь задач (event queue).
  2. При await текущая корутина приостанавливается, и Event Loop переключается на другую задачу.
  3. Когда I/O операция завершается (например, ответ от сервера), Event Loop возобновляет ожидающую корутину.

Пример:

python
import asyncio

async def task(name, delay):
    print(f"{name} started")
    await asyncio.sleep(delay)  # Неблокирующая задержка
    print(f"{name} finished")

async def main():
    await asyncio.gather(
        task("A", 2),
        task("B", 1),
    )

asyncio.run(main())

Вывод:

text
A started  
B started  
B finished (после 1 сек)  
A finished (после 2 сек)  

Event Loop эффективно управляет множеством задач без блокировки потока.

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

Это единственный вопрос по вашему фильтру

как отвечать на вопрос
пример собеседования
фреймворки на собеседовании
типичные вопросы junior
интервью вопросы и ответы