CompletableFuture学习笔记

2023/10/11 Java

CompletableFuture (opens new window):JDK8引入的异步任务编排的类。

# 开启异步任务

runAsync:无返回值

supplyAsync:有返回值

# 异步任务回调

thenApply:有参数有返回值

thenAccept:有参数无返回值

thenRun:无参数无返回值

thenXxx:不开启新线程,thenXxxAsync:可能开启新线程且可以指定自定义线程池

# 异步任务编排

thenCompose:编排两个有依赖关系的异步任务,用来连接两个有依赖关系的异步任务,结果由第二个异步任务返回。

thenCombine:编排两个非依赖关系的异步任务

allOf:合并多个异步任务,有多个需要独立并行运行的任务,并在这些任务都完成之后执行一些操作

anyOf:合并多个异步任务,有多个需要独立并行运行的任务,任何一个任务完成之后执行一些操作

# 异步任务交互

异步任务交互指将异步任务获取结果的速度相比较,按一定的规则(先到先用)进行下一步处理。

# 异步任务异常处理

exceptionally:可以理解为 try-catch 的 catch

handle:可以理解为 try-catch-finally 的 finally