stream CompletableFuture join 例子
时间: 2023-11-10 16:02:54 浏览: 164
stream CompletableFuture join 方法用于等待 CompletableFuture 完成,并返回其结果。它是一个阻塞方法,会一直等待 CompletableFuture 完成并返回结果。
下面是一个使用 stream 和 CompletableFuture 的 join 方法的例子:
```java
import java.util.Arrays;
import java.util.List;
import java.util.concurrent.CompletableFuture;
import java.util.stream.Collectors;
public class CompletableFutureJoinExample {
public static void main(String[] args) {
List<CompletableFuture<String>> completableFutures = Arrays.asList(
CompletableFuture.supplyAsync(() -> "Hello"),
CompletableFuture.supplyAsync(() -> "World"),
CompletableFuture.supplyAsync(() -> "!")
);
CompletableFuture<Void> allFutures = CompletableFuture.allOf(completableFutures.toArray(new CompletableFuture[0]));
CompletableFuture<String> combinedFuture = allFutures.thenApply(v ->
completableFutures.stream()
.map(CompletableFuture::join)
.collect(Collectors.joining(" ")));
System.out.println(combinedFuture.join());
}
}
```
在上面的例子中,我们创建了一个包含三个 CompletableFuture 的列表。然后,我们使用 CompletableFuture 的 allOf 方法等待所有的 CompletableFuture 完成。接下来,我们使用 stream 和 join 方法来获取每个 CompletableFuture 的结果,并使用空格连接它们。最后,我们打印出连接后的结果。
阅读全文