Junior — Middle
72
Можете объяснить механизм работы цикла событий (Event Loop) в асинхронном программировании?
Companies where asked
Медси
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) и позволяя выполнять другие задачи.