栏目分类:
子分类:
返回
名师互学网用户登录
快速导航关闭
当前搜索
当前分类
子分类
实用工具
热门搜索
名师互学网 > IT > 面试经验 > 面试问答

ExecutorService.submit(Task)与CompletableFuture.supplyAsync(Task,Executor)

面试问答 更新时间: 发布时间: IT归档 最新发布 模块sitemap 名妆网 法律咨询 聚返吧 英语巴士网 伯小乐 网商动力

ExecutorService.submit(Task)与CompletableFuture.supplyAsync(Task,Executor)

除了返回类型Future与CompletableFuture之外,还存在其他显着差异。或什么时候使用什么?

真的很简单。您可以使用

Future
,当你想执行的线程等待异步计算响应。并行合并/排序就是一个例子。异步左排序,同步右排序,等待左完成(
future.get()
),合并结果。

CompleteableFuture
当您要执行某些操作时使用a
,完成后的结果与执行的线程异步。例如:我想异步进行一些计算,然后在计算时将结果写入某个系统。然后,发出请求的线程可能不需要等待结果。

您可以在单个Future可执行文件中模仿以上示例,但是该

CompletableFuture
接口提供了更流畅的界面和更好的错误处理。

这实际上取决于您要做什么。

如果我将CompletableFutureApi与默认的执行程序(没有执行程序的方法)一起使用,会有什么区别?

它将

ForkJoin.commonPool()
默认的大小委托给您系统上的CPU数量。如果您要执行大量的IO操作(读取和写入文件系统),则应该以不同的方式定义线程池。

如果占用大量CPU,则使用commonPool最有意义。



转载请注明:文章转载自 www.mshxw.com
本文地址:https://www.mshxw.com/it/610380.html
我们一直用心在做
关于我们 文章归档 网站地图 联系我们

版权所有 (c)2021-2022 MSHXW.COM

ICP备案号:晋ICP备2021003244-6号