CompletableFuture多任务组合
public static CompletableFuture<Void> allOf(CompletableFuture<?>... cfs);public static CompletableFuture<Object> anyOf(CompletableFuture<?>... cfs);
allOf:等待所有任务完成
anyOf:只要有一个任务完成
public static void main(String[] args) {List<CompletableFuture> futures = Arrays.asList(CompletableFuture.completedFuture("hello"),CompletableFuture.completedFuture(" world!"),CompletableFuture.completedFuture(" hello"),CompletableFuture.completedFuture("java!"));final CompletableFuture<Void> allCompleted = CompletableFuture.allOf(futures.toArray(new CompletableFuture[]{}));allCompleted.thenRun(() -> {futures.stream().forEach(future -> {try {System.out.println("get future at:"+System.currentTimeMillis()+", result:"+future.get());} catch (InterruptedException | ExecutionException e) {e.printStackTrace();}});});
}
测试结果:
get future at:1568892339473, result:hello
get future at:1568892339473, result: world!
get future at:1568892339473, result: hello
get future at:1568892339473, result:java!
几乎同时完成任务!
CompletableFuture多任务组合相关推荐
- CompletableFuture异步编排(2)
1.handle public <U> CompletableFuture<U> handle( BiFunction<? super T, Throwable, ? e ...
- c++ 异步下获取线程执行结果_异步编排(CompletableFuture异步调用)
1.问题背景 问题:当查询接口较复杂时候,数据的获取都需要远程调用,必然需要花费更多的时间. 假如查询文章详情页面,需要如下标注的时间才能完成: 那么,用户需要4s后才能统计的数据.很显然是不能接受的 ...
- java并发编程之CompletableFuture
背景 在一些业务场景下,可能需要对一些任务进行异步化,以提高系统的吞吐量,在微服务的服务调用场景下显得尤为突出. 比如某个接口有五个任务: 任务A:执行时间2秒. 任务B:执行时间2秒. 任务C:执行 ...
- 九、CompletableFuture异步编排
一.认识Future任务机制和FutureTask 1.Future概述 1.在JDK1.5之后提供了一个多线程的新的处理接口Callable,该接口需要与Future接口整合在一起,而后再进行最终的 ...
- 【Java8新特性--->异步处理】CompletableFuture
一.引入 假设一个商品详情页需要以下操作: 查询展示商品的基本信息耗时:0.5s 查询展示商品的销售信息耗时:0.7s 查询展示商品的图片信息耗时:1s 查询展示商品销售属性耗时:0.3s 查询展示商 ...
- 【并发编程】异步编程CompletableFuture实战
文章目录 1.CompletableFuture简介 2.CompletableFuture核心API实战 3.CompletableFuture嵌套案例实战 4.合并两个CompletableFut ...
- 多线程之CompletableFuture全方面解析
多线程之CompletableFuture全方面解析 目录: 前言: 在我们写的一个底层Api中,由于上亿级数据量情况下,查询效率较慢,本篇文档记录一下优化过程所用技术栈CompletableFu ...
- 多线程与并发 - Java 8 CompletableFuture 异步多线程
1.一个示例回顾Future 一些业务场景我们需要使用多线程异步执行任务,加快任务执行速度. JDK5新增了Future接口,用于描述一个异步计算的结果. 虽然 Future 以及相关使用方法提供了异 ...
- 谷粒商城十五商品详情CompletableFuture异步编排
多线程异步任务的问题 例如a,b,c三个异步任务,不是随机运行就可以,它们还有一定的关系,c需要等待a的返回结果,b不需要等待谁的结果. 当异步任务产生一些关系和顺序之后,我们要编排好它们的关系进行调 ...
最新文章
- 技术债务就像俄罗斯方块,你永远都赢不了!
- 三种方式实现分布式锁
- 将自己写的windows服务加入到windows集群中
- 高糊马赛克秒变高清,表情帝:这还是我吗?
- C语言深度剖析书籍学习记录 第二章 符号
- python创建二维空列表_python定义二维空数组
- mysql的comment_mysql的comment怎么用
- 常用数据挖掘算法举例(下)
- 指针写字符比较c语言,利用指针进行字符串大小比较出现的问题
- Resin配置https
- 依赖计算机英语作文,2011年高考英语卷写作表达题目范文汇总(39):过度依赖电脑的弊端...
- ll和 amp amp c语言,ll 和 java
- Android批量打包-如何一秒内打完几百个apk渠道包
- 听了让人心静的纯音乐
- c# 实现金山词霸一样的屏幕取词
- xp打开html页面不正常,XP系统网页提示“已完毕 但网页上有错误”怎么办?
- 三维体素图绘制实验与教程
- 【TV Picture Quality - 03】TV屏幕解读
- 情迁QQ机器人 Lua机器人插件开发教程
- 高通 Camx 架构了解下(二)