ComplateableFuture应用

发布时间:2024年01月07日

应用

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相似,一个是参数中的任务都执行完再执行后续操作,一个是只需参数中的任意一个执行完。

文章来源:https://blog.csdn.net/weixin_44474209/article/details/135430527
本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。