基本用法
CompletableFuture主要方法汇总
runAsync 不带返回值
supplyAsync 带返回值
whenCompleteAsync 可以获得上一个线程的返回值和结果
exceptionally 可以在抛出异常的情况下获得上一个线程的返回值
handleAsync 在抛出异常的情况下 不仅可以获得异常信息 还可以根据自己的情况获得上一个结果返回值
thenRunAsync 此方法一般都紧接上一个线程 不接受上个线程的返回结果
thenAcceptAsync 此方法一般接受上一个线程的基础上使用 接受上一个线程的返回值结果
runAfterBoth 一般都是两个线程都执行完以后执行下面的线程3
![](/i/l/?n=22&i=blog/3001637/202211/3001637-20221116200413691-294404636.png)
thenCombineAsync 拿到前两个线程结果,重新返回一个结果
![](/i/l/?n=22&i=blog/3001637/202211/3001637-20221116200632819-1067799807.png)
runAfterEitherAsync 只要有一个线程执行完 做后续处理
allOf 三个任务处理完成 再执行后续
![](/i/l/?n=22&i=blog/3001637/202211/3001637-20221116200923920-24868187.png)
join() 或者 get方法都可以进行阻塞
![](/i/l/?n=22&i=blog/3001637/202211/3001637-20221116200944718-1556222072.png)
anyOf 三个任务有一个返回 可以后续处理
![](/i/l/?n=22&i=blog/3001637/202211/3001637-20221116201024702-899924298.png)
标签:异步,结果,一个,并发,线程,返回值,CompletableFuture From: https://www.cnblogs.com/yanxuezhou/p/16897385.html