Встречается на собеседованиях • сегодня

Как отрабатывают задачи в Event Loop

Event Loop — это механизм, который управляет выполнением асинхронного кода в Python (например, в asyncio). Он работает в бесконечном цикле, обрабатывая задачи из очереди.

Основные этапы:

  1. Запуск цикла: Event Loop начинает работу, выбирая задачи из очереди.
  2. Выполнение корутин: Каждая задача (корутина) выполняется до первого await.
  3. Ожидание I/O: Если корутина ожидает I/O (например, запрос к API), Event Loop приостанавливает её и переключается на другие задачи.
  4. Callback-и: По завершении I/O Event Loop ставит callback в очередь для выполнения.
  5. Завершение: Цикл продолжает работу, пока не обработает все задачи.

Пример:

python
import asyncio

async def task():
    print("Start task")
    await asyncio.sleep(1)  # I/O операция
    print("Task completed")

async def main():
    await asyncio.gather(task(), task())

asyncio.run(main())

Здесь asyncio.sleep освобождает Event Loop для выполнения других задач, пока ожидает завершения сна.

Sophi
Софи собрала все вопросы. Тренируйся и получай
офферы быстрее!
Попробовать бесплатноArrow

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

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

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