CompletableFuture<Void> allFutures = CompletableFuture.allOf(futureList.toArray(new CompletableFuture[0])); allFutures.join();
时间: 2023-12-13 20:33:54 浏览: 165
Java并发 CompletableFuture异步编程的实现
5星 · 资源好评率100%
这段代码使用了Java 8中的CompletableFuture类,它可以用于异步编程和并发处理。这段代码的作用是等待futureList中的所有CompletableFuture完成后,执行后续的代码。其中,CompletableFuture.allOf()方法接受一个CompletableFuture数组作为参数,返回一个新的CompletableFuture,该CompletableFuture在所有输入的CompletableFuture都完成时完成。而allFutures.join()方法则会阻塞当前线程,直到allFutures完成为止。
下面是一个示例代码,假设我们有一个包含三个CompletableFuture的列表futureList,我们可以使用CompletableFuture.allOf()等待所有的CompletableFuture完成,然后打印它们的结果:
```java
CompletableFuture<String> future1 = CompletableFuture.supplyAsync(() -> "Hello");
CompletableFuture<String> future2 = CompletableFuture.supplyAsync(() -> "World");
CompletableFuture<String> future3 = CompletableFuture.supplyAsync(() -> "!");
List<CompletableFuture<String>> futureList = Arrays.asList(future1, future2, future3);
CompletableFuture<Void> allFutures = CompletableFuture.allOf(futureList.toArray(new CompletableFuture[0]));
allFutures.join();
futureList.forEach(future -> System.out.println(future.join()));
```
输出结果为:
```
Hello
World
!
```
阅读全文