关于多线程:谈谈你对CompletableFuture类的理解

4次阅读

共计 669 个字符,预计需要花费 2 分钟才能阅读完成。

概念

CompletableFuture 是 jdk1.8 引入的一个基于事件驱动的一个异步回调类。

比方在一个批量领取的业务逻辑外面,波及到查问订单 / 领取和发送邮件告诉这三个逻辑,那么这三个逻辑是依照程序逻辑同步去实现的。这种设计形式会导致这个办法的执行效率会比较慢。

所以这里能够间接应用 CompletableFuture,比方把查问订单的逻辑放在一个异步线程外面去解决,而后基于 CompletableFuture 的一个事件回调机制,能够配置查问订单完结之后的一个触发领取的一个动作。领取完结之后再主动触发邮件告诉。从而极大晋升了这个业务场景的解决性能。

CompletableFuture 提供了五种不同的形式把多个异步工作组成一个具备先后关系的解决链。而后基于事件来驱动工作链的一个执行。

CompletableFuture 的应用

thenCombine

它是把两个工作组合在一起,当两个工作都执行完结当前触发某个事件的回调。

thenCompose

把两个工作组合在一起,这两个工作是串行执行的,第一个工作执行实现后主动去触发第二个工作。

thenAccept

第一个工作执行实现后主动去触发第二个工作,并且第一个工作的执行后果作为第二个的参数。纯正接管上一个工作的执行后果不返回新值的一个计算。

thenApply

和 thenAccept 一样,它具备返回值。

thenRun

第一个工作执行实现当前触发执行一个实现了 Runnable 接口的一个工作。

CompletableFuture 补救了本来 Future 的有余,使程序能够在非阻塞的状态上来实现异步的一个回调机制。

正文完
 0