CompletableFuture
CompletableFuture 是 JDK1.8 里面引入的一个基于事件驱动的异步回调类。 简单来说,就是当使用异步线程去执行一个任务的时候,我们希望在任务结束以后触发一个后续的动作。 而 CompletableFuture 就可以实现这个功能。 举个简单的例子,比如在一个批量支付的业务逻辑里面, 涉及到查询订单、支付、发送邮件通知这三个逻辑。 这三个逻辑是按照顺序同步去实现的,也就是先查询到订单以后,再针对这个订单发起支付,支付成功以后再发送邮件通知。 而这种设计方式导致这个方法的执行性能比较慢。我们就可以用 CompletableFuture 改造。
而使用 CompletableFuture 可以让我们将一个耗时的任务提交给线程池进行异步执行,然后可以继续执行其他的任务,等到异步任务执行结束后会触发一个回调方法,我们可以在回调方法中处理异步任务的执行结果。
优化了以前用 Future 阻塞等待异步线程的执行结果的问题。
CompletableFuture 还提供了一些便捷的方法,例如 thenApply、thenAccept、thenRun 等,可以让我们以链式的方式处理异步任务的结果,从而更加灵活地编写异步代码。
Last updated