![](/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.