繁体   English   中英

加入CompletableFuture与同步方法

[英]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.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM