1. 程式人生 > >基礎篇:非同步程式設計不會?我教你啊!CompeletableFuture

基礎篇:非同步程式設計不會?我教你啊!CompeletableFuture

# 前言 以前需要非同步執行一個任務時,一般是用Thread或者執行緒池Executor去建立。如果需要返回值,則是呼叫Executor.submit獲取Future。但是多個執行緒存在依賴組合,我們又能怎麼辦?可使用同步元件CountDownLatch、CyclicBarrier等;其實有簡單的方法,就是用CompeletableFuture - 執行緒任務的建立 - 執行緒任務的序列執行 - 執行緒任務的並行執行 - 處理任務結果和異常 - 多工的簡單組合 - 取消執行執行緒任務 - 任務結果的獲取和完成與否判斷 **關注公眾號,一起交流,微信搜一搜: 潛行前行** --- # 1 建立非同步執行緒任務 ## 根據supplier建立CompletableFuture任務 ```java //使用內建執行緒ForkJoinPool.commonPool(),根據supplier構建執行任務 public static CompletableFuture supplyAsync(Supplier supplier) //指定自定義執行緒,根據supplier構建執行任務 public static CompletableFuture supplyAsync(Supplier supplier, Executor executor) ``` ## 根據runnable建立CompletableFuture任務 ```java //使用內建執行緒ForkJoinPool.commonPool(),根據runnable構建執行任務 public static CompletableFuture