Это не помогает, когда рабочая нагрузка привязана к процессору или когда основные библиотеки блокируются и не предоставляют асинхронные API. Простые короткие сценарии также не стоят усложнения.
Решение для кода блокировки. Если вам нужно использовать библиотеку блокировки в асинхронной среде, используйте loop.run_in_executor(None, sync_func), которая запускает ее в отдельном потоке без блокировки цикла событий.
Суммируя:
- Async не ускоряет чистые вычисления ЦП.
- Без неблокирующих библиотек ввода-вывода польза минимальна.
run_in_executor помогает интегрировать устаревший синхронный код.
- Сложность асинхронности должна быть оправдана рабочей нагрузкой.
Итог
Это не помогает, когда рабочая нагрузка привязана к процессору или когда основные библиотеки блокируются и не предоставляют асинхронные API.