Sobes.tech
Back to questions
Junior — Middle
67

Можете объяснить, каким образом реализован цикл событий (event loop) в Python и какую роль он выполняет в асинхронном программировании?

Companies where asked
РЕСО-Лизинг

Answer from AI

sobes.tech AI

В Python цикл событий (event loop) реализован в модуле asyncio и отвечает за управление асинхронными задачами.

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

Пример работы event loop:

import asyncio

async def say_hello():
    await asyncio.sleep(1)
    print("Hello")

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

asyncio.run(main())

Здесь event loop запускает корутины say_hello, переключаясь между ними во время ожидания sleep, что позволяет выполнять другие задачи без блокировки.

Таким образом, event loop в Python обеспечивает кооперативное многозадачное выполнение асинхронного кода.