CompletableFuture详解~thenCombine

使用BiFunction处理两个阶段的结果

如果CompletableFuture依赖两个前面阶段的结果, 它复合两个阶段的结果再返回一个结果,我们就可以使用thenCombine()函数。整个流水线是同步的,所以getNow()会得到最终的结果,它把大写和小写字符串连接起来。

static void thenCombineExample() {String original = "Message";CompletableFuture cf = CompletableFuture.completedFuture(original).thenApply(s -> delayedUpperCase(s)).thenCombine(CompletableFuture.completedFuture(original).thenApply(s -> delayedLowerCase(s)),(s1, s2) -> s1 + s2);assertEquals("MESSAGEmessage", cf.getNow(null));
}

异步使用BiFunction处理两个阶段的结果

类似上面的例子,但是有一点不同:依赖的前两个阶段异步地执行,所以thenCombine()也异步地执行,即时它没有Async后缀。

Javadoc中有注释:

Actions supplied for dependent completions of non-async methods may be performed by the thread that completes the current CompletableFuture, or by any other caller of a completion method

所以我们需要join方法等待结果的完成。

static void thenCombineAsyncExample() {String original = "Message";CompletableFuture cf = CompletableFuture.completedFuture(original).thenApplyAsync(s -> delayedUpperCase(s)).thenCombine(CompletableFuture.completedFuture(original).thenApplyAsync(s -> delayedLowerCase(s)),(s1, s2) -> s1 + s2);assertEquals("MESSAGEmessage", cf.join());
}

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.mzph.cn/news/495836.shtml

如若内容造成侵权/违法违规/事实不符,请联系多彩编程网进行投诉反馈email:809451989@qq.com,一经查实,立即删除!

相关文章

PDB

PDB Program Database是目前最新的Debug信息格式。目前为此已经出现了两个版本,一个是用于Visual studio6.0的PDB20,另一个是用于Visual studio.Net(2002 or 2003)的PDB70。然后后者并不会兼容前者,所以visual studio6.0将不能使用最新的PDB7…

跟我学Telerik公司的RadControls控件(四)

朋友们、同行们通过前面《跟我学Telerik公司的RadControls控件》系列三篇的学习,你一定会内心有一种涌动,有种相见(RadControls)恨晚的感觉。那就和晓军一起加入学习RadControls控件的行列,为IT的朋友提供更加明了化的…

puppeteer( Nodejs 版 selenium )快速入门

From:https://www.cnblogs.com/CyLee/p/9310839.html puppeteer 官网:https://pptr.dev/ Puppeteer 中文文档 (与官方同步更新):https://segmentfault.com/a/1190000015913821 Puppeteer 中文文档 :https…

硅谷人眼中的2018年十大前沿科技预测

来源: 和米资本近日,由斯坦福大学的顶级学术研究团队、美国国防部高级研究计划局、硅谷最具创新力和影响力的创业公司以及和米资本一起精心策划,共同探讨技术将如何重新塑造行业和社会等问题,分析预测了2018年全球十大前沿科技的未…

CompletableFuture详解~thenCompose

组合 CompletableFuture 我们可以使用thenCompose()完成上面两个例子。这个方法等待第一个阶段的完成(大写转换), 它的结果传给一个指定的返回CompletableFuture函数,它的结果就是返回的CompletableFuture的结果。 有点拗口,但是我们看例子…

WinForm始终置顶并获取焦点

使一个Winform始终置顶很简单,只要将这个Form的TopMost属性设置为True即可,但是强制让其获取焦点就比较麻烦了。 最开始的想法在Deactivate事件(Form处于非活动状态时)中,加入如下代码: this.Activate();//…

麦肯锡AI应用报告:深度学习是蓝海还是深坑?

来源:网络大数据AI的价值并不在模型自身,而在于公司怎样用好它们。麦肯锡出品,一份深度学习领域的分析报告,包含400个应用案例,横跨19个行业的9种业务功能。报告重点强调了前沿AI技术的应用范围之广,以及经…

pyppeteer:比 selenium 更高效的爬虫利器

API 接口文档:API Reference:https://miyakogi.github.io/pyppeteer/reference.html pyppeteer github 地址:https://github.com/miyakogi/pyppeteer pyppeteer 英文文档地址:https://miyakogi.github.io/pyppeteer/ pyppeteer…

CompletableFuture详解~anyOf

当几个阶段中的一个完成,创建一个完成的阶段 下面的例子演示了当任意一个CompletableFuture完成后, 创建一个完成的CompletableFuture. 待处理的阶段首先创建, 每个阶段都是转换一个字符串为大写。因为本例中这些阶段都是同步地执行(thenAp…

HTML 中表单form 的相关知识

在Javascript 中&#xff0c;页面上的每一对<form> 标记都解析为一个对象&#xff0c;即form 对象。 可以通过document.forms 获取以源顺序排列的文档中所有form 对象的集合。 如果一个表单对象定义如下&#xff1a;<form name"frm1" method"post"…

全球机器学习领域顶尖的16家公司

来源&#xff1a;网络大数据 作者&#xff1a;Andy Patrizio摘要&#xff1a;机器学习是众多公司颇感兴趣的一个新兴领域。本文介绍了几大领先的机器学习公司&#xff0c;包括老牌技术厂商和后起之秀。机器学习是与人工智能一同急剧发展的领域。IDC预测&#xff0c;人工智能和…

突破淘宝对于 selenium 检测

From&#xff1a;https://blog.csdn.net/qq_42196922/article/details/89400988 多加一行代码&#xff0c;突破淘宝模拟登录滑块&#xff1a;http://www.imooc.com/article/285729 爬虫自动化&#xff1a;https://www.jianshu.com/p/b3b92f327374 selenium 跳过 webdriver 检…

CompletableFuture详解~allOf

当所有的阶段都完成后创建一个阶段 上一个例子是当任意一个阶段完成后接着处理&#xff0c;接下来的两个例子演示当所有的阶段完成后才继续处理, 同步地方式和异步地方式两种。 static void allOfExample() {StringBuilder result new StringBuilder();List messages Array…

AIX操作命令记录中

1.重启命令shutdown -Fr 2.查看各分区的使用情况df -sg 3.按占用空间大小降序列出/var文件夹下所有目录的空间占用情况du /var/ | sort -nr | more 4.按占用空间大小降序列出/var文件夹下所有目录和文件的空间占用情况du -a /var/ | sort -nr | more转载于:https://www.cnblogs…

18年你需要了解的15个人工智能统计数据

来源&#xff1a;网络大数据人工智能(AI)每天都在以惊人的速度增长&#xff0c;并且与此同时&#xff0c;围绕着各行业的统计数据也在发生变化。该技术在简化医疗保健行业工作流程方面取得了巨大成功&#xff0c;减少了教育部门行政任务的工时&#xff0c;同时也降低了制造业的…

Python GUI 开发工具

Python Tkinter教程&#xff08;GUI图形界面开发教程&#xff09;&#xff1a;http://c.biancheng.net/python/tkinter/ PyQt5教程&#xff1a;http://code.py40.com/face 作为 Pyhon 开发者&#xff0c;我们迟早都会碰到 图形用户界面&#xff08;GUI&#xff09;应用 开发任…

CompletableFuture详解~supplyAsync

supplyAsync 可以支持返回值。 //有返回值 public static void supplyAsync() throws Exception {CompletableFuture<Long> future CompletableFuture.supplyAsync(() -> {try {TimeUnit.SECONDS.sleep(1);} catch (InterruptedException e) {}System.out.println(&…

pandas 读写 excel

Python开发 之 Python3读写Excel文件&#xff08;较全&#xff09;&#xff1a;https://blog.csdn.net/u014597198/article/details/83104653 python读取excel&#xff08;Python处理xls&#xff09;&#xff1a;https://blog.csdn.net/chenggong2dm/article/details/44956805…

7张图了解2018物联网产业发展新趋势

来源&#xff1a;硅谷动力 作者&#xff1a;文乾摘要&#xff1a;物联网其本质上是互联网的延伸&#xff0c;利用以传感器为主的嵌入式计算机系统进行各终端之间的彼此数据交互。本篇文章用7张图片讲述了物联网应用的各个领域。随着互联网红利逐渐消失&#xff0c;“Interne…

CompletableFuture详解~异常处理

计算结果完成时的回调方法 当 CompletableFuture 的计算结果完成&#xff0c;或者抛出异常的时候&#xff0c;可以执行特定的 Action。主要是下面的方法&#xff1a; public CompletableFuture<T> whenComplete(BiConsumer<? super T,? super Throwable> actio…