国产xxxx99真实实拍_久久不雅视频_高清韩国a级特黄毛片_嗯老师别我我受不了了小说

資訊專欄INFORMATION COLUMN

java并發編程學習之Fork/Join 框架-基本概念(一)

hikui / 390人閱讀

摘要:思想把大任務分割成多個小任務,再把小任務的結果匯總,最終得到大任務的結果。當一個線程執行完當前隊列的任務時,他就會去竊取其他隊列的任務來執行。當雙端隊列只有一個任務時,線程之間會競爭。

思想

把大任務分割成多個小任務,再把小任務的結果匯總,最終得到大任務的結果。

步驟如下:

任務分割

結果匯總

示例圖

工作竊取

指的是線程從其他線程竊取任務來執行。當一個大任務分割成多個小任務的時候,為了減少線程之間的競爭,把小任務放在不同的隊列里,每個隊列都分配一個線程來執行任務。當一個線程執行完當前隊列的任務時,他就會去竊取其他隊列的任務來執行。由于都是同一個隊列執行小任務,為了減少線程之間的競爭,竊取任務的時候,從隊列的尾部拿任務。

優點:充分利用了線程的計算,減少線程之間的競爭

缺點:

消耗系統資源,比如創建線程和多個雙端隊列。

當雙端隊列只有一個任務時,線程之間會競爭。

示例圖

ForkJoinTask

實現了Future的接口,主要的子類有RecursiveAction和RecursiveTask。

RecursiveAction:沒有返回值

RecursiveTask:有返回值

主要的方法:

fork():再創建一個子任務

invoke():執行任務

join():返回計算后的結果

ForkJoinPool

通過調用invoke來執行ForkJoinTask的任務。

文章版權歸作者所有,未經允許請勿轉載,若此文章存在違規行為,您可以聯系管理員刪除。

轉載請注明本文地址:http://m.specialneedsforspecialkids.com/yun/75262.html

相關文章

  • java并發編程習之Fork/Join 框架-RecursiveTask(二)

    摘要:示例計算一組數據,設置閾值為,也就是說每次計算的數量不超過個。總數總數運行結果如下可以看出,兩次結果是一樣的。創建繼承的類,實現方法,這里主要是計算以及拆分任務合并結果。 示例 計算一組數據,設置閾值為50,也就是說每次計算的數量不超過50個。 public class RecursiveTaskDemo extends RecursiveTask { private stat...

    TerryCai 評論0 收藏0
  • java并發編程習之基礎概念

    摘要:線程和進程參考進程和線程的區別和聯系線程線程作為獨立運行和獨立調度的基本單位。由于線程比進程更小,基本上不擁有系統資源,故對它的調度所付出的開銷就會小得多,能更高效的提高系統內多個程序間并發執行的程度。進程進程作為分配資源的基本單位。 線程和進程 參考進程和線程的區別和聯系 線程:線程作為獨立運行和獨立調度的基本單位。由于線程比進程更小,基本上不擁有系統資源,故對它的調度所付出的開銷...

    enali 評論0 收藏0
  • java并發編程習之synchronize(

    摘要:線程安全問題在并發編程學習之基礎概念提到,多線程的劣勢之一,有個線程安全問題,現在看看下面的例子。那么,該怎么解決呢,很簡單,在方法前加個同步鎖。運行結果如下有兩種情況,是因為看誰先搶占鎖,但是輸出的算法結果是正確的。 線程安全問題 在java并發編程學習之基礎概念提到,多線程的劣勢之一,有個線程安全問題,現在看看下面的例子。 public class NotSafeDemo { ...

    Elle 評論0 收藏0
  • 想進大廠?50個多線程面試題,你會多少?【后25題】(二)

    摘要:大多數待遇豐厚的開發職位都要求開發者精通多線程技術并且有豐富的程序開發調試優化經驗,所以線程相關的問題在面試中經常會被提到。掌握了這些技巧,你就可以輕松應對多線程和并發面試了。進入等待通行準許時,所提供的對象。 最近看到網上流傳著,各種面試經驗及面試題,往往都是一大堆技術題目貼上去,而沒有答案。 不管你是新程序員還是老手,你一定在面試中遇到過有關線程的問題。Java語言一個重要的特點就...

    caozhijian 評論0 收藏0

發表評論

0條評論

最新活動
閱讀需要支付1元查看
<