Sobes.tech
Назад к вопросам
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())