В последнее время я активно работаю с Google Guava и ListenableFutures, и кое-что, что мне не хватало, - это способ обеспечить обработчик потокового потока будущих заказов. То, что я представляю, - это итерируемый, который блокирует на next(), пока не вернется другое будущее.Итерабельность фьючерсов с использованием Guava?
Прежде чем я попытаюсь создать свое собственное, существует ли уже существующее?
Если нет, я думал о том, чтобы использовать функцию обратного вызова ListenableFuture для вывода результатов на BlockingQueue. Цель состоит в том, чтобы обработать возвращаемые значения, как только они вернутся. Futures.successfulAsList()
отлично, но ждет всех значений перед возвратом, а не позволяет мне планировать другую полезную работу.
Это, безусловно, путь. (Гува рассмотрел и отклонил, имея «Итератор», который может потерпеть неудачу, какие фьючерсы определенно могут, но «CompletionService» прекрасно справляется с потребностями OP). –