Мне нужно что-то похожее на executor.map
, за исключением случаев, когда я перебираю результаты, я хочу перебирать их по порядку завершения, например. рабочий элемент, который был завершен первым, должен сначала отображаться на итерации и т.д. Это значит, что итерация блокирует, если каждый отдельный рабочий элемент в последовательности еще не закончен.
Я знаю, как реализовать это самостоятельно, используя очереди, но мне интересно, можно ли использовать фреймворк futures
.
(В основном я использовал исполнителей на основе потоков, поэтому мне нужен ответ, который относится к ним, но общий ответ также приветствуется.)
ОБНОВЛЕНИЕ: Спасибо за ответы! Не могли бы вы объяснить, как я могу использовать as_completed
с executor.map
? executor.map
- самый полезный и сжатый инструмент для меня при использовании фьючерсов, и я бы не захотел использовать Future
объекты вручную.