За счет чего происходит переключение в asyncio

Python Senior Мой Офис
За счет чего происходит переключение в asyncio
Ответы
Asyncio использует механизм событийного цикла (event loop) для переключения между корутинами. Когда корутина достигает точки ожидания (await), управление возвращается в event loop, который решает, какую следующую корутину запустить. Это позволяет эффективно использовать ресурсы, избегая блокировок. Ключевые моменты: - **Awaitable объекты** (корутины, задачи, футуры) приостанавливают выполнение корутины - **Event loop** управляет очередью готовых к выполнению задач - **Неблокирующие вызовы** (например, I/O операции) регистрируют callback в event loop Пример: ``` import asyncio async def task1(): print("Start task1") await asyncio.sleep(1) # Передача управления обратно в event loop print("End task1") async def task2(): print("Start task2") await asyncio.sleep(0.5) print("End task2") async def main(): await asyncio.gather(task1(), task2()) asyncio.run(main()) ```