Сколько потоков и процессов используется в asyncio

Python Senior Без компании
Сколько потоков и процессов используется в asyncio
Ответы
В asyncio используется **один основной поток** и **один процесс**, но он может эффективно управлять множеством корутин (асинхронных задач) в рамках этого потока. ### Ключевые моменты: - **Один поток** – asyncio работает в одном потоке, переключаясь между корутинами через цикл событий (event loop). - **Мультипроцессинг** – можно комбинировать с `ProcessPoolExecutor` для CPU-задач, но это уже не чистый asyncio. - **GIL не мешает** – так как операции I/O освобождают GIL, а корутины кооперативно переключаются. ### Пример: ``` import asyncio async def task(): print("Running in asyncio") async def main(): await asyncio.gather(task(), task(), task()) # 3 корутины в одном потоке asyncio.run(main()) ``` Если нужна параллельность для CPU-bound задач, используют `multiprocessing` или `concurrent.futures.ProcessPoolExecutor`.