【问题标题】:CompletableFuture.allOf() vs anyOf()CompletableFuture.allOf() 与 anyOf()
【发布时间】:2019-01-28 04:12:50
【问题描述】:

来自 javadocs,

AllOf()

如果任何给定的 CompletableFutures 异常完成,那么 返回的 CompletableFuture 也这样做,带有 CompletionException 将此异常作为其原因。

AnyOf()

如果异常完成,返回的 CompletableFuture 也 这样做,CompletionException 将此异常作为它的 原因。

这是否意味着当任何 CompletableFuture 抛出异常时 allOf() 和 anyOf() 的行为方式相同?

问题在于短语

返回的 CompletableFuture 也这样做

出现在这两种方法中,但没有明确提及何时发生异常。

【问题讨论】:

    标签: java javadoc completable-future


    【解决方案1】:

    不完全是。 anyOf 给出任一期货完成的结果,无论是否异常。 allOf 在所有通过的期货都完成之前不会完成,包括异常完成的期货。如果任何期货异常完成,第一个异常会反映在结果中。

    基本上,anyOf 的异常总是来自已完成的一个未来,而 allOf 可能来自任何未来。

    【讨论】:

      猜你喜欢
      • 1970-01-01
      • 2021-12-28
      • 1970-01-01
      • 2021-02-24
      • 1970-01-01
      • 1970-01-01
      • 2018-10-02
      • 1970-01-01
      • 1970-01-01
      相关资源
      最近更新 更多