Java 连接CompletableFuture与同步方法

Java 连接CompletableFuture与同步方法,java,java-8,java-stream,completable-future,Java,Java 8,Java Stream,Completable Future,具有: b) 在这种情况下使用异步有什么好处吗?如果方法a和b中的流都是顺序的。它们之间没有区别,你应该避免使用它。因为您只是在ForkJoinPool.commonPool()中运行getData&加入map方法,直到getData完成 如果进近a和b中的流都是平行的。它们之间也没有什么不同,你也应该避免使用它。因为并行流已经在使用ForkJoinPool.commonPool()进行操作。在您的示例中使用异步不会有什么区别,因为您正在使用它调用join,所以join是阻塞调用,而Async将

具有:

b)


在这种情况下使用异步有什么好处吗?

如果方法a和b中的流都是顺序的。它们之间没有区别,你应该避免使用它。因为您只是在
ForkJoinPool.commonPool()
中运行
getData
&加入
map
方法,直到
getData
完成


如果进近a和b中的流都是平行的。它们之间也没有什么不同,你也应该避免使用它。因为并行流已经在使用
ForkJoinPool.commonPool()
进行操作。

在您的示例中使用异步不会有什么区别,因为您正在使用它调用join,所以join是阻塞调用,而Async将不再是异步的

请进一步解释您的问题。没有区别:
join()
将阻止,直到结果可用。
String getData(String key){
    // Slow operation
}

CompletableFuture<String> getDataAsync(String key){
    return CompletableFuture.supplyAsync(() -> getData(key));
}
keyStream.map(key -> getData(key));
keyStream.map(key -> getDataAsync(key).join());