Как переключаются корутины в asyncio

Python Senior Без компании
Как переключаются корутины в asyncio
Ответы
Корутины в asyncio переключаются через механизм событийного цикла (event loop). Когда корутина достигает точки ожидания (например, `await`), она приостанавливается, и управление передаётся обратно в event loop, который решает, какую следующую корутину запустить. Пример: ``` import asyncio async def task1(): print("Task 1 started") await asyncio.sleep(1) print("Task 1 finished") async def task2(): print("Task 2 started") await asyncio.sleep(2) print("Task 2 finished") async def main(): await asyncio.gather(task1(), task2()) asyncio.run(main()) ``` Здесь `await asyncio.sleep()` передаёт управление обратно в event loop, позволяя выполняться другим корутинам. Event loop отслеживает состояние всех корутин и переключает контекст при необходимости.