Java 连接CompletableFuture与同步方法
具有: b)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将
在这种情况下使用异步有什么好处吗?如果方法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());