Sobes.tech
Junior — Middle
72

Можете объяснить механизм работы цикла событий (Event Loop) в асинхронном программировании?

Companies where asked
WildberriesWildberries
Медси

Answer from AI

sobes.tech AI

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

Принцип работы:

  • Цикл событий ждет, когда появятся готовые к выполнению задачи (например, завершение ввода-вывода).
  • Когда задача готова, цикл запускает её обработчик.
  • Если задача вызывает асинхронную операцию, она приостанавливается, и управление возвращается в цикл.
  • Цикл продолжает обрабатывать другие задачи, пока не появятся новые готовые.

Это позволяет эффективно использовать ресурсы, не блокируя поток ожиданием операций ввода-вывода.

Пример на Python с asyncio:

import asyncio

async def say_hello():
    print('Hello')
    await asyncio.sleep(1)  # имитация асинхронной операции
    print('World')

asyncio.run(say_hello())

Здесь цикл событий управляет выполнением корутины say_hello, приостанавливая её на await asyncio.sleep(1) и позволяя выполнять другие задачи.