java - CompletableFuture.allOf() 与 anyOf()
问题描述
从javadocs,
AllOf()
如果任何给定的CompletableFuture 异常完成,则返回的 CompletableFuture 也会这样做,并且 CompletionException 将此异常作为其原因。
AnyOf()
如果它异常完成,则返回的 CompletableFuture 也会这样做,并且 CompletionException 将此异常作为其原因。
这是否意味着当任何 CompletableFuture 抛出异常时 allOf() 和 anyOf() 的行为方式相同?
问题在于这句话
返回的 CompletableFuture 也这样做
出现在这两种方法中,但没有明确提及何时发生异常。
解决方案
不完全的。anyOf
给出任一期货完成的结果,无论是否异常。allOf
在所有通过的期货完成之前不会完成,包括异常完成的期货。如果任何期货异常完成,第一个异常将反映在结果中。
基本上,异常 fromanyOf
将始终来自完成的一个未来,而allOf
它可能来自任何一个。
推荐阅读
- sharepoint - 如何在 SharePoint 上的表格内的 1 个单元格内添加一个按钮?
- javascript - 我对 setInterval() 有一些问题
- mysql - 无法将 NULL 更改为 0(MySQL 查询)
- python - 什么是状态与无状态属性和优势?
- php - Fields Integer as String,怎么办?php
- ssh - 为什么 .ssh/config 中的 LocalForward 在 ssh -L 按预期工作时返回错误
- jmeter - 分布式负载测试 Jmeter 中的 IP SPOOFING 概念
- python - 使用 python 从 ajax 请求中抓取 XML 响应
- c# - WebAPI 中的 EFCore 3.1 应该返回什么类型的集合?
- laravel - 在 Eloquent 中使用 with() 方法的 Laravel 错误