Назад к вопросам
СБЕР Центр ИИ
Junior — Middle
66
Каким образом происходит переключение задач в корутинах при использовании asyncio?
Компании, где спрашивали
Ответ от нейросети
sobes.tech AI
В asyncio переключение задач (корутин) происходит при встрече точки ожидания (await), где корутина приостанавливается, позволяя планировщику событий (event loop) переключиться на выполнение другой корутины. Таким образом, переключение задач происходит кооперативно: корутина добровольно уступает управление, ожидая завершения асинхронной операции, например, ввода-вывода. Это позволяет эффективно использовать время ожидания без блокировки потока.
Пример:
import asyncio
async def task(name):
print(f"{name} started")
await asyncio.sleep(1) # точка переключения
print(f"{name} finished")
async def main():
await asyncio.gather(task("A"), task("B"))
asyncio.run(main())