Почему реализация асинхронности через asyncio быстрее потоков

Python Junior Без компании
Почему реализация асинхронности через asyncio быстрее потоков
Ответы
Asyncio эффективнее потоков для I/O-bound задач благодаря кооперативной многозадачности. В отличие от потоков, где ОС переключает контекст, asyncio использует event loop и корутины, которые добровольно отдают контроль при await. Это устраняет накладные расходы на: - Переключение контекста (в потоках ~1-15 мкс) - GIL contention (потоки в Python не работают параллельно из-за GIL) - Потребление памяти (каждый поток ~8MB стек) Пример: ``` 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.