异步线程:CompletableFuture、@Async

news/2024/11/17 19:46:38/

区别:

1.CompletableFuture是java中提供的一个异步执行类,@Async是Spring提供的异步执行方法,当调用方法单独开启一个线程进行调用。

2.@Async通常指定一个方法使用的异步方法调用,而CompletableFuture可以一个方法体内对请求体进行排序组合成链式调用再返回

目录

1.CompletableFuture总体架构

2.计算完成时回调方法

 串行化与并行化

串行化案例:

 并行化案例:

 多任务组合


1.CompletableFuture总体架构

Future 它是java5添加的接口,用来描述一个异步计算的结果,可以用isDone方法来计算是否完成,或者使用get阻塞往效用线程,直到计算返回结果,可以使用Cancel方法停止任务执行。

CompletableFuture实现Furure接口,不推荐使用get方式阻塞或者轮询方式获取结果。

CompletableFuture.supplyAsync(Runnable,Executor);//支持返回值

CompletableFutre.runAsync(Runnable,Executor);//不支持返回值

2.计算完成时回调方法

whenComplete(BigConsumer):同步完成正常处理结果

whenCompleteAsync(BigConsumer):异步完成处理结果

whenCompleteAysnc(BigConsumer,Executor):异步完成处理结果

exceptionally(Function):处理异常结果

 串行化与并行化

串行化:程序从上到下执行的都是一个循序

并行化:从上到下执行顺序不一定

串行化案例:

thenApply方法(有返回值):当一个线程依赖另一个线程是,获取上一个任务返回结果,并返回当前任务的返回值

thenAccept方法(无返回值):接受任务的处理结果,并消费处理,无返回值结果。

thenRun方法(最后执行):只有上面的任务执行完成,就开始执行thenRun,只是处理完任务后执行thenRun的后续操作。

 并行化案例:

 多任务组合

allof().join();:等待所有任务完成之后返回

anyof():只有一个任务完成


http://www.ppmy.cn/news/73349.html

相关文章

yolov5剪枝与知识蒸馏【附代码】

剪枝和知识蒸馏均属于模型轻量化设计,剪枝是将已有网络通过剪枝的手段得到轻量化网络,可分为非结构化剪枝和结构化剪,该技术可以免去人为设计轻量网络,而是通过计算各个权重或者通道的贡献度大小,剪去贡献度小的权重或…

面了个 Java 实习生,小伙很优秀!

大家好,我是鱼皮,前几天给自己的公司面试了一位 Java 暑期实习生,候选人目前是大三。 整个过程我都录屏了,并且在征得候选人的同意后,把面试过程分享出来。一方面是希望对其他在学编程找工作的小伙伴有一些启发和参考…

思迈特软件Smartbi荣登“2023未来银行科技服务商100强”

近日,中国科学院《互联网周刊》、eNet研究院联合发布了“2023未来银行科技服务商100强”企业榜单。思迈特软件以“商业智能BI产品”凭借在金融科技创新的独特优势及在银行数字化转型实践中的卓越成就荣耀上榜。 据了解,“未来银行科技服务商100强”榜单&…

Spring IOC 的理解

IoC容器是什么? IoC文英全称Inversion of Control,即控制反转,我么可以这么理解IoC容器: “把某些业务对象的的控制权交给一个平台或者框架来同一管理,这个同一管理的平台可以称为IoC 容器。” 我们刚开始学习…

Java读取txt文件:TSP问题测试算例att48.txt

目录 1读取文件1.1 JDK1.5的Scanner类读取1.2 JDK8的Files.linesStream流按行读取(推荐)1.3 JDK11提供的Files.readString()1.4 FileInputStreamInputStreamReaderBufferedReader按行读取1.5 经典管道流方式(推荐) 2 JAVA快速统计…

GEE遥感云大数据林业应用典型案例及GPT模型

详情点击链接:GEE遥感云大数据林业应用典型案例及GPT模型 一:平台及基础开发平台 GEE平台及典型应用案例;GEE开发环境及常用数据资源;ChatGPT、文心一言等GPT模型、帐号申请及林业遥感JavaScript基础;GEE遥感云重要概…

FLEXPART--空气块轨迹-扩散模式

模式简介: FLEXPART(Flexible Particle Dispersion Model)模式是由挪威大气研究所(Norwegian Institute for Air Research)和德国慕尼黑工业大学(Technical University of Munich)联合开发的空气块轨迹-扩散模式, 其通过计算区域内所有气块的运动轨迹进…

[CTF/网络安全] 攻防世界 backup 解题详析

[CTF/网络安全] 攻防世界 backup 解题详析 PHP备份文件名备份文件漏洞成因备份文件名常用后缀姿势总结 题目描述:X老师忘记删除备份文件,他派小宁同学去把备份文件找出来,一起来帮小宁同学吧! PHP备份文件名 PHP 脚本文件的备份文件名&#…