Back to questions
Т-Банк
Junior — Middle
69
Какое количество потоков используется при выполнении различных корутин в библиотеке asyncio?
Companies where asked
Answer from AI
sobes.tech AI
В библиотеке asyncio в Python корутины выполняются в рамках одного потока, то есть по умолчанию используется один поток.
Асинхронное выполнение достигается за счёт событийного цикла, который переключается между корутинами, не блокируя поток. Это позволяет эффективно работать с операциями ввода-вывода.
Если нужно использовать несколько потоков, это делается явно с помощью модуля concurrent.futures.ThreadPoolExecutor или ProcessPoolExecutor, но сами корутины asyncio не создают дополнительные потоки.
Пример запуска корутин в одном потоке:
import asyncio
async def task(name):
print(f"Задача {name} начала работу")
await asyncio.sleep(1)
print(f"Задача {name} завершена")
async def main():
await asyncio.gather(task('A'), task('B'))
asyncio.run(main())
В этом примере обе задачи выполняются асинхронно в одном потоке.