![](/img/trans.png)
[英]CompletableFuture allof(..).join() vs CompletableFuture.join()
[英]join CompletableFuture vs synchronous method
具有:
String getData(String key){
// Slow operation
}
CompletableFuture<String> getDataAsync(String key){
return CompletableFuture.supplyAsync(() -> getData(key));
}
以下内容有什么区别?
一种)
keyStream.map(key -> getData(key));
b)
keyStream.map(key -> getDataAsync(key).join());
在这种情况下使用异步有什么优势吗?
如果方法a和b中的流都按顺序进行。 它们之间没有区别,您应该避免使用它。 因为您只需在ForkJoinPool.commonPool()
运行getData
并加入map
方法,直到完成getData
。
如果方法a和b中的流都是并行的。 它们之间也没有什么不同,您也应该避免使用它。 因为并行流已经在使用ForkJoinPool.commonPool()
进行操作了。
在您的示例中,此处的用法异步不会对您造成任何影响,因为您正在用此调用join,因此join阻止了呼叫,并且Async将不再是ASync
声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.