併發編程--運行多個任務並處理第一個結果

併發編程中比較常見的一個問題是,當採用多個併發任務來解決一個問題時,往往只關心這些任務中的第一個結果。比如,對一個數組進行排序有很多種算法,可以併發啓動所有算法,但是對於一個給定的數組,第一個得到排序結果的算法就是最快的排序算法。

通過調用執行器的ivokeAny方法,返回的結果是第一個完成的線程,當第一個線程完成後,其他線程全部中斷,下面通過一個例子來看看執行器的ivokeAny方法


客戶端調用ivokeAny後返回五個線程當中第一個完成的結果,如果不希望返回第一個線程完成的結果,而是返回全部線程處理的結果,可以調用ivokeAll方法,記住調用ivokeAll方法返回參數是List<Future<T>>其中T是自定義的泛型參數。

發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章