CompletableFuture是Java8中对Future的增强。实现CompletionStage接口(40余个方法),大多数方法多数应用在函数式编程中,并且支持流式调用。
简单实现:
1 | public class CompletableFutureTest implements Runnable { |
Future最令人诟病的就是要等待,要自己去检查任务是否完成了,在Future中,任务完成的时间是不可控的。而CompletableFuture的最大改进在于,任务完成的时间也开放了出来。
CompletableFuture的异步执行:
1 | public static Integer calc(Integer param) { |
CompletableFuture的流式调用:
1 | public static Integer calc(Integer param) { |
组合多个CompletableFuture:
1 | public static Integer calc2(Integer param) { |
CompletableFuture跟性能上关系不大,更多的是为了支持函数式编程,在功能上的增强。当然开放了完成时间的设置是一大亮点。
演示的完整代码如下:
1 | package main.java.com.study.completableFuture; |