繁体   English   中英

何时使用 CompletableFuture#thenApply(..) 而不是 thenApplyAsync(..)?

[英]When to use CompletableFuture#thenApply(..) over thenApplyAsync(..)?

CompletableFuture上下文中,我理解thenApply(..)可以使用当前线程并且可以使用预定义的执行器(例如 ForkJoinPool),而thenApplyAsync(..)确保将始终使用预定义的执行器。

就我所见, thenApplyAsync(..)似乎更“可靠”,因为它从不阻塞当前线程,而thenApply(..)可能是一个惊喜。

我的问题:哪个示例/场景可以使用thenApply(..)而不是thenApplyAsync(..)

谢谢,克里斯托夫

是的, thenApplyAsync会使用一些执行器。 这意味着必须创建一些 Runnable 对象并将其放入执行程序的队列中。 如果这个CompletableFuture后要执行的函数很简单,那么直接调用这个方法可能比创建包络 Runnable 效率更高。

暂无
暂无

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

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