Встречается на собеседованиях • сегодня
Почему реализация асинхронности через asyncio быстрее потоков
Asyncio эффективнее потоков для I/O-bound задач благодаря кооперативной многозадачности. В отличие от потоков, где ОС переключает контекст, asyncio использует event loop и корутины, которые добровольно отдают контроль при await. Это устраняет накладные расходы на:
- Переключение контекста (в потоках ~1-15 мкс)
- GIL contention (потоки в Python не работают параллельно из-за GIL)
- Потребление памяти (каждый поток ~8MB стек)
Пример:
python
import asyncio
async def fetch(url):
print(f"Start {url}")
await asyncio.sleep(1) # Имитация I/O
print(f"Done {url}")
async def main():
await asyncio.gather(
fetch("url1"),
fetch("url2") # Выполнятся конкурентно в 1 потоке
)
asyncio.run(main())Для CPU-bound задач лучше использовать multiprocessing.

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