CompletableFuture.allOf使用方法
时间: 2024-12-20 18:12:54 浏览: 10
`CompletableFuture.allOf()` 是 Java 中用于并行操作的工具类 `java.util.concurrent.CompletableFuture` 提供的一个静态方法,它允许你在一组完成阶段的未来完成事件上同步。这个方法接收一个 CompletableFutures 的集合作为参数,并返回一个新的 CompletableFuture。当输入的 CompletableFuture 集合中的所有任务都完成(无论成功还是失败)时,返回的 CompletableFuture 就会完成。
使用 `allOf()` 的基本语法如下:
```java
List<CompletableFuture<Void>> futures = Arrays.asList(
future1, // 第一个任务
future2, // 第二个任务
future3 // ...更多任务
);
CompletableFuture<Void> combinedFuture = CompletableFuture.allOf(futures.toArray(new CompletableFuture[0]));
combinedFuture.whenComplete((result, error) -> {
if (error == null) {
System.out.println("All tasks completed successfully");
} else {
System.err.println("Error occurred: " + error.getMessage());
}
});
```
在这个例子中,如果所有 `future` 完成,`combinedFuture` 也将完成,并且回调函数会被调用。如果有任何一个 `future` 失败,`combinedFuture` 将立即完成,并传递该失败的任务的异常。
阅读全文