Теперь вы фактически используете asyncIO
, как и было задумано. asyncIO
не создает никаких потоков самостоятельно, но ожидает, что пользовательский код сделает это прямо или косвенно.
Существует два основных варианта использования: 1) Использование внешних обратных вызовов, когда используемая библиотека возвращает результат. Например, используя реактивный API mongodb. 2) Поддержание пользовательского пула потоков (например, с Executors.newFixedThreadPool
) и использование его для выполнения асинхронных операций c вручную.
Вы используете второй подход.
Без использования какого-либо из них, asyncIO
это просто медленный map
.