26 CompactableFuture原理

vvEcho 2026-03-14 16:15:32
Categories: Tags:

CompletableFuture 是Java提供的异步编程工具,用于处理异步任务和任务编排

它是 Future 的增强版本
传统 Future 的问题:不能主动完成,不能组合任务,不能回调;CompletableFuture解决了这些问题

代码示例

1
2
3
CompletableFuture.supplyAsync(() -> queryUser())
.thenApply(user -> getOrder(user))
.thenAccept(order -> System.out.println(order));

例如上面的例子,执行流程是查询用户-》获取订单-》处理结果;全部是异步链式编程

底层原理

它在底层通过 CAS 状态控制和 Completion 回调链实现任务完成后的回调触发,并默认使用 ForkJoinPool 线程池执行异步任务。CompletableFuture支持链式调用、任务组合(如 thenApply、allOf、anyOf),可以方便实现串行或并行任务编排。在实际业务中常用于并行RPC调用、聚合接口、异步任务处理等场景,从而提升系统吞吐和降低接口响应时间