ComplateableFuture应用

应用

CompletableFutures是对Future的扩展和增强,CompltableFuture实现Future接口,在此基础上做了丰富扩展,使用起来极其方便简单,同时CompletableFuture实现了对任务的编排的能力。
使用ComplateableFuture时,如果不提供线程池参数,那么默认使用的是ForkJoinPool
在这里插入图片描述
而ForkJoinPool使用的是守护线程,当main线程结束时,守护线程会跟着一起结束,那么ComplateableFuture的异步操作也就不存在了。

常用方法:

下面通过Demo对几个常用方法进行简单讲解

runAsync

在这里插入图片描述

supplyAsync

与runAsync类似,有返回值,是ComplateableFuture对象,且入参是supplier,而runAsync入参是runnable
tip:调用后可以使用get方法获取返回值,但是最好设置超时时间,不然会在get时一直阻塞。

thenApply

在这里插入图片描述

thenApplyAsync

与thenApply类似,但thenApply无法指定线程池。

thenAccept

在这里插入图片描述

thenRun

与thenAccept类似,区别是无入参无返回参数

thenCombine

用法与thenAccept类似,有返回参数
在这里插入图片描述

applyToEither

在这里插入图片描述

exceptionally

用来捕获异常,类似catch,但是用handle更好更灵活,因为handle既可以捕获异常,也可以捕获前置CompletableFuture的返回值
在这里插入图片描述

allOf

与anyOf相似,一个是参数中的任务都执行完再执行后续操作,一个是只需参数中的任意一个执行完。

  • 12
    点赞
  • 11
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值