Как происходит интеграция корутины с основным циклом обработки событий?
Answer from AI
sobes.tech AI
В Python корутины интегрируются с основным циклом обработки событий (event loop), который управляет их выполнением и переключением между ними. Основной цикл запускает корутины, приостанавливает их выполнение при ожидании асинхронных операций (например, ввода-вывода) и возобновляет, когда операция завершена.
Например, в asyncio event loop запускает корутину, которая может использовать await для ожидания результата другой асинхронной операции. Во время ожидания event loop переключается на выполнение других задач, обеспечивая эффективное использование ресурсов.
Пример:
import asyncio
async def say_hello():
print("Привет")
await asyncio.sleep(1) # приостанавливает корутину на 1 секунду
print("Пока")
asyncio.run(say_hello())
Здесь asyncio.run запускает event loop, который управляет выполнением корутины say_hello. Когда встречается await asyncio.sleep(1), корутина приостанавливается, и event loop может выполнять другие задачи, если они есть.