專案需求:
專案中需要優化一個介面,這個介面需要拉取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();