CompletableFuture.allOf()的用法和作用
时间: 2024-06-04 16:04:29 浏览: 354
CompletableFuture.allOf()方法可以在所有给定的CompletableFuture完成后返回一个新的CompletableFuture,它表示所有给定的CompletableFuture都已经完成。在使用allOf()方法时,我们可以向其中传入任意多个CompletableFuture对象。当我们需要等待所有任务完成后再继续执行下一步操作时,可以使用这个方法。
例如,我们需要同时查询多个数据库并且等待所有查询完成后,我们再将这些结果进行处理。我们可以使用CompletableFuture.allOf()方法来实现:
```java
CompletableFuture<Integer> future1 = CompletableFuture.supplyAsync(() -> {
// 查询数据库1
return 1;
});
CompletableFuture<Integer> future2 = CompletableFuture.supplyAsync(() -> {
// 查询数据库2
return 2;
});
CompletableFuture<Integer> future3 = CompletableFuture.supplyAsync(() -> {
// 查询数据库3
return 3;
});
CompletableFuture<Void> allFutures = CompletableFuture.allOf(future1, future2, future3);
allFutures.get();
// 所有查询都完成了,我们可以进行结果的处理
int result1 = future1.get();
int result2 = future2.get();
int result3 = future3.get();
```
在上面的代码中,我们同时查询了三个数据库,并使用CompletableFuture.allOf()方法等待所有查询完成。当所有查询完成后,我们可以获取每个查询的结果进行处理。
阅读全文