用CompletableFuture實現非同步任務

張大虎發表於2019-01-19

專案需求:

專案中需要優化一個介面,這個介面需要拉取23個第三方介面,需求延遲時間小於200ms;

技術選型:

CompletableFuture是JDK8提出的一個支援非阻塞的多功能的Future,同樣也是實現了Future介面,Future是Java 5新增的類,用來描述一個非同步計算的結果。java8對future進一步完善,擴充套件了諸多功能形成了CompletableFuture。

CompletableFuture功能介紹

程式碼

final List<CompletableFuture<Void>> futures = Lists.newArrayList();
//獲取稽核狀態
futures.add(CompletableFuture.runAsync(() -> task1(), executorService));
//使用者頭像
futures.add(CompletableFuture.runAsync(() -> task2(), executorService));
CompletableFuture.allOf(futures.toArray(new CompletableFuture[]{})).join();


相關文章