简化异步编程;提供了四个静态方法来创建一个异步操作:
public static CompletableFuture<Void> runAsync(Runnable runnable)
public static CompletableFuture<Void> runAsync(Runnable runnable,Executor executor);
public static <U> CompletableFuture<U> supplyAsync(Supplier<U> supplier);
public static <U> CompletableFuture<U> supplyAsync(Supplier<U> supplier,Executor executor);
使用步骤:(1)创建线程池;(2)直接调用方法
计算完成时回调方法:
当CompletableFuture的计算结果完成,或者抛出异常的时候,可以执行特定的Action,主要是以下方法:
public CompletableFuture<T> whenComplete(BigConsumer<? supper T,? super Throwable> action)
public CompletableFuture<T> whenCompleteAsync(BigConsumer<? supper T,? super Throwable> action)
public CompletableFuture<T> exceptionally(Function<Throwable,? extends T> fn)
线程串行化方法:
public <U> CompletableFuture<U> thenApply(Function<? super T,? extends U> fn)
public <U> CompletableFuture<U> thenApplyAsync(Function<? super T,? extends U> fn)
public <U> CompletableFuture<U> thenApplyAsync(Function<? super T,? extends U> fn,Excutor excutor)
多任务组合:
allof():等待任务全部完成;
anyof():只要有一个任务完成;