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線程