Модуль
concurrent.futures, появившийся в Python 3.2, предоставляет более высокоуровневый интерфейсЭтот подход дает три ключевых преимущества:
1. Обработка результатов по мере готовности через
as_completed().2. Более удобная обработка исключений.
3. Простое переключение между процессами и потоками (для IO-bound задач достаточно заменить .
ProcessPoolExecutor на ThreadPoolExecutor)Разъяснивший Python
