JAVA异步处理结束处理,CompletableFuture-java异步处理
一. 概述
在开发中, 经常碰到一写场景就是, 一些耗时的操作有时与业务主干关联性不大, 为了提高业务主干的响应速度, 我们会把这些耗时的任务异步处理. 本文介绍的异步工具类是java8自带的工具类-CompletableFuture, 详细api请查看官方的api, 本文主要介绍常用方法使用
二. 常用方法介绍
2.1 异步执行方法
public static void main(String[] args) throws Exception{
// 返回一个新的CompletableFuture,通过运行在 ForkJoinPool.commonPool()中的任务与通过调用给定的供应商获得的值 异步完成。
CompletableFuture supplyAsync = CompletableFuture.supplyAsync(() -> {
return helloWorld();
});
// 返回一个新的CompletableFuture,它在运行给定操作后由运行在 ForkJoinPool.commonPool()中的任务 异步完成。
CompletableFuture.runAsync(() -> helloWorld());
}
public static String helloWorld(){
return "helloWorld";
}
2.2 获取异步返回的结果
public static void main(String[] args) throws Exception{
// 返回一个新的CompletableFuture,通过运行在 ForkJoinPool.commonPool()中的任务与通过调用给定的供应商获得的值 异步完成。
CompletableFuture future = CompletableFuture.supplyAsync(() -> {
return helloWorld();
});
// 等待这个未来完成的必要,然后返回"helloWorld"。
String str1 = future.get();
// 如果已完成,则返回"helloWorld"(或抛出任何遇到的异常),否则返回"hi"。
String str2 = future.getNow("hi");
// 等待3秒, 执行完了就返回"helloWorld"
String str3 = future.get(3, TimeUnit.SECONDS);
}
public static String helloWorld(){
return "helloWorld";
}
JAVA异步处理结束处理,CompletableFuture-java异步处理相关推荐
- java表示语句结束的符号,java基础篇三(运算符号、表达式与语句)
一.运算符 赋值运算符:= 一元运算符: +,正号 -,负号 !,非 ~:取补码,如下例子: Paste_Image.png Paste_Image.png ++,自增一 --,自减一 算数运算符: ...
- java判断文件结束_关于java读取文件时,如何判断读取文件是否到达末尾?
一.前言 java读取文件时,如果到达文件末尾,再进行读取时会发生异常,所以我们需要判断读取文件已经到达末尾.对于文件读取我们通常会采用不同的读取方式,如用InputStream流读取字节流.用Rea ...
- Java 8 (10) CompletableFuture:组合式异步编程
随着多核处理器的出现,提升应用程序的处理速度最有效的方式就是可以编写出发挥多核能力的软件,我们已经可以通过切分大型的任务,让每个子任务并行运行,使用线程的方式,分支/合并框架(java 7) 和并行流 ...
- jooq 执行sql_使用jOOQ和Java 8的CompletableFuture进行异步SQL执行
jooq 执行sql 响应式编程是一个新的流行词,它实际上仅表示异步编程或消息传递. 事实是,函数语法极大地帮助构建了异步执行链,今天,我们将看到如何使用jOOQ和新的CompletableFutur ...
- 具有jOOQ和Java 8的CompletableFuture的异步SQL执行
响应式编程是一个新的流行词,它实际上仅表示异步编程或消息传递. 事实是,函数语法极大地帮助构建了异步执行链,今天,我们将看到如何使用jOOQ和新的CompletableFuture API在Java ...
- java http客户端_java 11 标准Java异步HTTP客户端
这是 Java 9 开始引入的一个处理 HTTP 请求的的 HTTP Client API,该 API 支持同步和异步,而在 Java 11 中已经为正式可用状态,你可以在 java.net 包中找到 ...
- java epoll select_Java 非阻塞 IO 和异步 IO
点击上方 Java后端,选择 设为星标 优质文章,及时送达 作者 | HongJie 链接 | javadoop.com/post/nio-and-aio 本文将介绍非阻塞 IO 和异步 IO,也就是 ...
- java ee打印功能_Java EE:异步构造和功能
java ee打印功能 介绍 Java EE具有许多API和构造以支持异步执行. 从可伸缩性和性能的角度来看,这是至关重要的. 让我们假设2个模块相互交互. 当模块A (发送方)以同步方式向模块B ( ...
- java 怎么写异步方法_java如何学习异步编程?
昨天头儿给的学习文档我还没看完,头儿说:"MongoDB光会简单的添删改查什么的不行,要深入了解,你们连$set和$inc使用场景都分不清." 确实,学习过一年多SQL,确实对学习 ...
- java的rest异步调用_使用AsyncRestTemplate进行异步调用
背景: 最近项目中需要并发调用c++服务的http接口,问题是同时调用两个接口时,会发生严重阻塞,导致页面响应慢,还经常遇到接收数据超时,导致RestTemplate报出ReadTimeout错误,一 ...
最新文章
- __clone class php_PHP 对象克隆 clone 关键字与 __clone() 方法
- div+css中设置了float属性后如何让外层的高度随着内层的高度大小自动调整
- [转]关于形如--error LNK2005: xxx 已经在 msvcrtd.lib ( MSVCR90D.dll ) 中定义--的问题分析解决...
- calico的两种网络模式BGP和IP-IP性能分析
- BD-09 GCJ-02 WGS84 坐标之间的转换
- 31.javaweb简介
- localStorage存、取数组
- python assert函数
- 做数据分析还在死磕Excel?用这个简单工具,摆脱复杂函数和公式
- 【Flink】requested virtual cores for application master 1 exceeds the maximum number of virtual cores
- 【Flink】Flink的窗口触发器 PurgingTrigger
- 二胎妈妈,35岁,年薪70万,家庭工作平衡太难,要不要辞职?
- R语言-异常数据处理3
- 北京大学生物信息学(3)
- itest听力答案2020_itest答案
- Spark入门实战WordCount
- 在线对数函数计算机,对数函数计算器
- 牛客练习赛53E 老瞎眼 pk 小鲜肉(线段树)
- 计算机目标作文,人生的目标作文(精选5篇)
- 有个程序员的老公是种什么体验,嫁给程序员,我超级后悔!