По Oracle documentation:invokeall() Wiht будущее Versus CompletableFuture
invokeAll()
: выполняет поставленные задачи, возвращая список фьючерсов, имеющих свой статус и результаты, когда все полные.Future.isDone()
верно для каждого элемента возвращаемого списка. Обратите внимание, что завершенная задача может завершиться либо нормально, либо путем исключения исключения. Результаты этого метода не определены, если данный сборник изменен во время выполнения этой операции.
CompletableFuture
также реализует будущее со следующими политики:
С (в отличие от
FutureTask
) этот класс не имеет прямого контроля над вычислением, что приводит к его будет завершено, отмена трактуется как только другая форма исключительного завершения. Отмена метода имеет тот же эффект, что иcompleteExceptionally(new CancellationException())
. МетодisCompletedExceptionally()
может использоваться для определения того, завершен лиCompletableFuture
каким-либо исключительным образом.В случае исключительного завершения с
CompletionException
, методамиget()
иget(long, TimeUnit)
броситьExecutionException
с той же самой причиной, как проведенные в соответствующемCompletionException
. Чтобы упростить использование в большинстве контекстов, этот класс также определяет методыjoin()
иgetNow(T)
, которые вместо этого бросаютCompletionException
непосредственно в этих случаях.
Каковы различия между
invokeAll()
сFuture
CompletableFuture
Поскольку JDK 1.7 не поддерживает CompletableFuture
, может ли тот же результат быть достигнут с invokeAll()
с Future
?
Благодарим вас за отзыв. Исправил вопрос. –
'CompletableFuture' просто предоставляет возможность асинхронно действовать на результат. «Будущее» - нет. –
Теперь я проверил вопрос. Этот вопрос преобразует 1,7 кода в 1,8 совместимый код. Я ищу достижение 1.8 с 1.7 кодом, так как я не могу обновить JDK до 1.8 –