1、构造CompletableFuture
supplyAsync:有返回值、Supplier
runAsync:无返回值、Runnable
2、获取结果
get:可以超时等待或一直等待
getNow:立即返回,没有处理完返回默认值
join:
3、响应结果或异常
whenCompleteAsync
handleAsync
exceptionally:异常时的处理
5、依赖一个阶段的任务流(前一个阶段正常结束,才会执行下一个阶段)
thenApplyAsync:有参数(前一个阶段的结果),有返回值
thenRunAsync:无参数,无返回值
thenAcceptAsync:有参数(前一个阶段的结果),无返回值
thenComposeAsync:有参数(前一个阶段的结果),有返回值(CompletionStage<U>)
6、依赖两个阶段的任务流(在两个阶段都完成后,执行另一个阶段)
runAfterBothAsync:任务类型是Runnable
thenCombineAsync:任务类型是BiFunction,会返回一个结果
thenAcceptBothAsync:任务类型是BiConsumer
7、只需要其中任意一个阶段完成,就执行下一个阶段
runAfterEitherAsync:Runnable
applyToEitherAsync:Function
acceptEitherAsync:Consumer
8、构建依赖多个阶段的任务流
allOf:所有的子任务都完成
anyOf:任意一个完成就执行
9、任务类型整理
无参数、无返回:Runnable
无参数、有返回:Supplier
一个参数、无返回:Consumer
一个参数、有返回:Function
两个参数、无返回:BiConsumer
两个参数、有返回:BiFunction
10、带Async后缀的解释
由那种线程去执行这个任务
11、执行的线程池
自定义的或者ForkJoinPool.commonPool()