CompletableFuture详解~thenCompose
组合 CompletableFuture
我们可以使用thenCompose()
完成上面两个例子。这个方法等待第一个阶段的完成(大写转换), 它的结果传给一个指定的返回CompletableFuture函数,它的结果就是返回的CompletableFuture的结果。
有点拗口,但是我们看例子来理解。函数需要一个大写字符串做参数,然后返回一个CompletableFuture, 这个CompletableFuture会转换字符串变成小写然后连接在大写字符串的后面。
static void thenComposeExample() {String original = "Message";CompletableFuture cf = CompletableFuture.completedFuture(original).thenApply(s -> delayedUpperCase(s)).thenCompose(upper -> CompletableFuture.completedFuture(original).thenApply(s -> delayedLowerCase(s)).thenApply(s -> upper + s));assertEquals("MESSAGEmessage", cf.join());
}
CompletableFuture详解~thenCompose相关推荐
- CompletableFuture详解~allOf
当所有的阶段都完成后创建一个阶段 上一个例子是当任意一个阶段完成后接着处理,接下来的两个例子演示当所有的阶段完成后才继续处理, 同步地方式和异步地方式两种. static void allOfExam ...
- CompletableFuture详解~CompletionStage
CompletableFuture 分别实现两个接口 Future与 CompletionStage. Future 接口大家都比较熟悉,这里主要讲讲 CompletionStage. Complet ...
- Java 8 的异步编程利器 CompletableFuture 详解
文章目录 一个例子回顾 Future 一个例子走进CompletableFuture CompletableFuture使用场景 创建异步任务 supplyAsync方法 runAsync方法 任务异 ...
- 【异步编程学习笔记】JDK中的FutureTask和CompletableFuture详解(使用示例、源码)
文章目录 FutureTask概述 使用实例 类图结构 FutureTask的run()方法 FutureTask的局限性 CompletableFuture概述 CompletableFuture代 ...
- CompletableFuture详解~join与get的区别
一.相同点: join()和get()方法都是用来获取CompletableFuture异步之后的返回值 二.区别: 1.join()方法抛出的是uncheck异常(即RuntimeException ...
- CompletableFuture详解~异常处理
计算结果完成时的回调方法 当 CompletableFuture 的计算结果完成,或者抛出异常的时候,可以执行特定的 Action.主要是下面的方法: public CompletableFuture ...
- CompletableFuture详解~supplyAsync
supplyAsync 可以支持返回值. //有返回值 public static void supplyAsync() throws Exception {CompletableFuture< ...
- CompletableFuture详解~anyOf
当几个阶段中的一个完成,创建一个完成的阶段 下面的例子演示了当任意一个CompletableFuture完成后, 创建一个完成的CompletableFuture. 待处理的阶段首先创建, 每个阶段都 ...
- CompletableFuture详解~thenCombine
使用BiFunction处理两个阶段的结果 如果CompletableFuture依赖两个前面阶段的结果, 它复合两个阶段的结果再返回一个结果,我们就可以使用thenCombine()函数.整个流水线 ...
最新文章
- 使用ReaderWriterLock优化文件缓存
- 前端临床手扎——简单易用的fetch
- 二叉树的先序遍历和非递归遍历
- JSP页面的执行过程
- kettle中使用javascript步骤和fireToDB函数实现自己定义数据库查询
- python读取usb扫码枪数据_USB
- 获得最新纪录 sql
- vue 调用c++_electron-vue跨平台桌面应用开发实战教程(七)——ffi调用C++(macOS平台)...
- python战斗2:看到一个页面编码
- Linux之pwd命令
- 浅学DSP原理及应用
- Java线程之线程的五种状态
- 【向生活低头】如何在Gold Wave软件中为声音添加背景音乐
- Vue 中使用Pug
- SAP ABAP ZBA_R003 查询用户下的角色里的公司
- Python+OpenCV实现图像处理OCR手写数字识别原理
- python音乐播放器
- 计算机等级考试一级ps内容,计算机等级考试《一级ps》备考练习及答案
- IP 数据库,CSV 和 MDB 格式。
- 自然语言处理的一些工具
热门文章
- 图谱实战 | 知识图谱构建的一站式平台gBuilder
- 技术动态 | 知识图谱的策展
- 服务器部署docker
- Linux系统中Oracle数据库使用SELECT语句检索数据(1)实例应用
- Android官方开发文档Training系列课程中文版:通知用户之大视图通知
- Android官方开发文档Training系列课程中文版:高效显示位图之位图缓存
- 【JavaWeb】XML和Jsoup的相关内容
- PowerShell(PHPStorm terminal with PowerShell)运行git log中文乱码
- lucene索引创建
- 用js使得输入框input只能输入数字