CompletableFuture.allOf () против anyOf () - PullRequest
0 голосов
/ 28 января 2019

Из javadocs,

AllOf()

Если любой из заданных CompletableFutures завершается исключительно, то возвращаемое CompletableFuture также делает это, с исключением CompletionException, содержащим это исключение в качестве своегопричиной.

AnyOf()

, если она выполнена исключительно, возвращаемое CompletableFuture также делает это, причем исключение CompletionException удерживает это исключение в качестве причины.

Делает ли этоОзначает ли, что allOf () и anyOf () ведут себя одинаково, когда любой из CompletableFuture генерирует Exception?

Вопрос в том, что фраза

, возвращаемая CompletableFuture, также делает так, что

появляется в обоих методах без явного упоминания, когдаесли возникает исключение.

1 Ответ

0 голосов
/ 28 января 2019

Не совсем.anyOf дает результат завершения любого из фьючерсов, независимо от того, является ли он исключительным или нет.allOf не завершается, пока не будут завершены все переданные фьючерсы, включая исключительно завершенные фьючерсы.Если какой-либо фьючерс завершен в исключительном порядке, в результате отражается первое исключение.

По существу, исключение из anyOf всегда будет происходить из того будущего, которое завершилось, тогда как с allOf оно может исходить из любого.

...