Сколько потоков занимает работа разных корутин в asyncio

Python Middle Т-Банк
Сколько потоков занимает работа разных корутин в asyncio
Ответы
В asyncio все корутины выполняются в одном потоке (основном потоке event loop). Корутины — это не потоки, а сопрограммы, которые кооперативно переключаются в рамках одного потока. Event loop управляет выполнением корутин, переключаясь между ними при возникновении `await`. **Пример:** ``` import asyncio async def task(name, delay): print(f"{name} started") await asyncio.sleep(delay) print(f"{name} finished") async def main(): await asyncio.gather( task("A", 2), task("B", 1), ) asyncio.run(main()) # Работает в одном потоке ``` **Исключения:** - Если используется `run_in_executor`, то код выполняется в отдельном потоке/процессе. - Некоторые низкоуровневые операции (например, файловый ввод-вывод в Windows) могут блокировать поток. **Вывод:** asyncio по умолчанию использует один поток, но при необходимости можно задействовать дополнительные.