CompletableFuture类实现了CompletionStage和Future接口。Future是Java 5添加的类,用来描述一个异步计算的结果,可是获取一个结果时方法较少,要么经过轮询isDone,确认完成后,调用get()获取值,要么调用get()设置一个超时时间。可是这个get()方法会阻塞住调用线程,这种阻塞的方式显然和咱们的异步编程的初衷相违背。
为了解决这个问题,JDK吸取了guava的设计思想,加入了Future的诸多扩展功能造成了CompletableFuture。编程
whenComplete 当运行完成时,对结果的记录。这里的完成时有两种状况,一种是正常执行,返回值。另一种是遇到异常抛出形成程序的中断。这里为何要说成记录,由于这几个方法都会返回CompletableFuture,当Action执行完毕后它的结果返回原始的CompletableFuture的计算结果或者返回异常。因此不会对结果产生任何的做用。app
handle运行完成时,对结果的处理。这里的完成时有两种状况,一种是正常执行,返回值。另一种是遇到异常抛出形成程序的中断。异步
https://www.jianshu.com/p/6f3ee90ab7d3异步编程
https://www.jianshu.com/p/6ee694cfb54bspa
*************** https://mp.weixin.qq.com/s/R2tLbygElx0jzB2DIGdL2Q线程