当前位置: 首页 > news >正文

CompletableFuture

一、一个示例回顾Future

一些业务场景我们需要使用多线程异步执行任务,加快任务执行速度。JDK5新增了Future接口,用于描述一个异步计算的结果。虽然Future以及相关使用方法提供了异步执行任务的能力,但是对于结果的获取却是很不方便,我们必须使用Future.get()的方式阻塞调用线程,或者使用轮询方式判断Future.isDone()任务是否结束,再获取结果。

这两种处理方式都不是很优雅,相关代码如下:

import java.util.concurrent.ExecutionException;
import java.util.concurrent.ExecutorService;
import java.util.concurrent.Executors;
import java.util.concurrent.Future;public class Demo {public static void main(String[] args) throws ExecutionException, InterruptedException{ExecutorService executorService = Executors.newFixedThreadPool(5);Future<String> future = executorService.submit(() -> {Thread.sleep(2000);return "hello";});System.out.println(future.get());System.out.println("end");}
}
http://www.lryc.cn/news/11013.html

相关文章:

  • 面试不到10分钟就被赶出来了,问的实在是太变态了...
  • 【C++】类与对象 (四)初始化列表 static成员 友元 内部类 匿名对象 拷贝对象时的一些编译器优化
  • 04:进阶篇 - 编译 CTK
  • SQL73 返回所有价格在 3美元到 6美元之间的产品的名称和价格
  • 【Linux 多线程互斥】如何保证锁的原子性(互斥的原理)
  • Android 实现沉浸式全屏
  • 数据分析与SAS学习笔记6
  • 自动化完成1000个用户的登录并获取token并生成tokens.txt文件
  • 2023年全国最新安全员精选真题及答案1
  • NoMachine 输入用户名密码后 闪断 解决办法
  • WebADI - 参数的使用
  • 【OJ】两个圆
  • 一文读懂澳洲医疗:白菜价的药物怎么领?
  • scrum看板视图切换时间线视图做项目管理
  • 10、MySQL查询优化
  • C++模板(一)
  • 【TypeScript】TypeScript的基础类型(string,number,boolean,void,null,undefined):
  • 【C语言】 详谈指针
  • 内网渗透(三十八)之横向移动篇-pass the key 密钥传递攻击(PTK)横向攻击
  • 教你快速学会画动漫人物表情
  • Qt系列:调用Edge浏览器示例
  • 内推|香港外企急招ETL工程师!数据分析师+Python开发+运营专家
  • zlib压缩原理
  • 论文阅读笔记《DEEP GRAPH MATCHING CONSENSUS》
  • 华为OD机试题 - 开放日活动(JavaScript)
  • (考研湖科大教书匠计算机网络)第四章网络层-第八节:网际控制报文协议ICMP
  • 华为OD机试 - GPU 调度 | 备考思路,刷题要点,答疑 【新解法】
  • 华为OD机试题 - 任务总执行时长(JavaScript)
  • 还在想假期去哪玩?直接做一个旅游攻略小程序
  • 十四、vue3项目如何使用three.js