CompletableFuture使用
3 月,跳不动了?>>> 一、CompletableFuture简介 https://my.oschina.net/u/2307176/blog/3196557 之前分析过FutureTask,FutureTask实现了Future接口,作为一个Task存在的,其本身是不管理线程池执行过程的,只是借助了Future的特性来来控制我们的任务,例如取消任务、设置超时时间获取任务执行结果。 CompletableFuture实现了Future和CompletionStage,表示异步计算的中不同阶段,可以对这些阶段进行组合。CompletableFuture会将任务委托给线程池处理,我们可以指定线程池Executor,也可以使用默认的ForkJoinPool,任务一般是Runnable、Supplier、Consumer、Function的实现。 二、使用ComletableFuture 我们根据功能分类,大概有三类方法:同步方法、带Async且指定Executor的异步方法,带Async使用默认ForkJoinPool的异步方法 1.创建ComletableFuture // 构造方法 public CompletableFuture() {} // 创建一个已经完成的CompletableFuture public static <U> CompletableFuture<U>