1.我的簡易實現future模式,能夠本身實現使用阻塞線程,當請求結果未返回,不然結果返回喚醒阻塞線程,若是實現以下圖,詳細實現可查看文末參考資料java
2.JDK 1.5開始支持的Future實現,實現多個任務異步化,可是請求結果沒法直接獲取返回結果,由於Future是接口。異步
3.JDK1.5中FutureTask既能當線程運行實現了Runnable接口,又能直接獲取異步返回的Future數據實現了Future接口post
4.項目中實戰,當請求1和請求2執行時間差很少,性能能達到一倍的提高。可是注意:必須請求1和請求2無依賴關係,請求1和請求2耗時相差不大,不知足上面兩個狀況的話,不然引入線程池,以及任務增長了代碼複雜,使用意義也不很大,性能提高也不明顯。性能
5.java8 CompletableFuture能夠支持前面請求異步 計算結果,多個請求獲取數據也非阻塞了,性能也會有一點提高。spa
參考資料:線程
https://juejin.im/post/5b948b11f265da0aa949f0b23d