Встречается на собеседованиях • сегодня

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

В asyncio используется один основной поток и один процесс, но он может эффективно управлять множеством корутин (асинхронных задач) в рамках этого потока.

Ключевые моменты:

  1. Один поток – asyncio работает в одном потоке, переключаясь между корутинами через цикл событий (event loop).
  2. Мультипроцессинг – можно комбинировать с ProcessPoolExecutor для CPU-задач, но это уже не чистый asyncio.
  3. GIL не мешает – так как операции I/O освобождают GIL, а корутины кооперативно переключаются.

Пример:

python
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.

Sophi
Софи собрала все вопросы. Тренируйся и получай
офферы быстрее!
Попробовать бесплатноArrow

Следующий вопрос

Это единственный вопрос по вашему фильтру

как отвечать на вопрос
пример собеседования
фреймворки на собеседовании
типичные вопросы junior
интервью вопросы и ответы