Встречается на собеседованиях • сегодня
Сколько потоков занимает работа разных корутин в asyncio
В asyncio все корутины выполняются в одном потоке (основном потоке event loop). Корутины — это не потоки, а сопрограммы, которые кооперативно переключаются в рамках одного потока.
Event loop управляет выполнением корутин, переключаясь между ними при возникновении await.
Пример:
python
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 по умолчанию использует один поток, но при необходимости можно задействовать дополнительные.

Софи собрала все вопросы. Тренируйся и получай
офферы быстрее!
офферы быстрее!
Попробовать бесплатно
Следующий вопрос
Это единственный вопрос по вашему фильтру
как отвечать на вопрос
пример собеседования
фреймворки на собеседовании
типичные вопросы junior
интервью вопросы и ответы