1. 程式人生 > >Java Future模式

Java Future模式

1.個人簡易實現future模式,可以自己實現使用阻塞執行緒,當請求結果未返回,否則結果返回喚醒阻塞執行緒,如果實現如下圖,詳細實現可檢視文末參考資料

2.JDK 1.5開始支援的Future實現,實現多個任務非同步化,但是請求結果無法直接獲取返回結果,因為Future介面

3.JDK1.5中FutureTask既能當執行緒執行實現了Runnable介面,又能直接獲取非同步返回的Future資料實現了Future介面

4.專案中實戰,當請求1和請求2執行時間差不多,效能能達到一倍的提升。但是注意:必須請求1和請求2無依賴關係,請求1和請求2耗時相差不大,不滿足上面兩個情況的話,否則引入執行緒池,以及任務增加了程式碼複雜,使用意義也不很大,效能提升也不明顯。

5.java8 CompletableFuture可以支援前面請求非同步 計算結果,多個請求獲取資料也非阻塞了,效能也會有一點提升。

參考資料:

https://juejin.im/post/5b948b11f265da0aa949f0b2