Основы asyncio
Python
Middle
Сбербанк
Что такое asyncio в Python? В чём главное отличие подхода async/await от потоков (threading) для I/O-bound задач?
Ответы
Asyncio vs Threads
asyncio — это библиотека для асинхронного, неблокирующего ввода-вывода, основанная на event loop и корутинах.
Главная идея:
- корутины добровольно отдают управление через await (кооперативная многозадачность).
Отличие от потоков:
- потоки переключаются ОС (preemptive), сложнее синхронизация.
- asyncio даёт один поток/цикл событий, переключение происходит только на await.
Для большого количества сетевых запросов asyncio часто эффективнее и дешевле по ресурсам, чем тысячи потоков.