1. 程式人生 > >13、JUC--ForkJoinPool 分支/合並框架 工作竊取(未完成)

13、JUC--ForkJoinPool 分支/合並框架 工作竊取(未完成)

等待時間 ont 技術分享 結果 運行 span 狀態 不可 繼續

ForkJoinPool 分支/合並框架 工作竊取

Fork/Join 框架

Fork/Join 框架:就是在必要的情況下,將一個大任務,進行拆分(fork)成
若幹個小任務(拆到不可再拆時),再將一個個的小任務運算的結果進
行 join 匯總

技術分享圖片

Fork/Join 框架與線程池的區別

? 采用 “工作竊取”模式(work-stealing):
  當執行新的任務時它可以將其拆分分成更小的任務執行,並將小任務加
  到線程隊列中,然後再從一個隨機線程的隊列中偷一個並把它放在自己的隊
  列中。


? 相對於一般的線程池實現,fork/join框架的優勢體現在對其中包含的任務


  的處理方式上.在一般的線程池中,如果一個線程正在執行的任務由於某些
  原因無法繼續運行,那麽該線程會處於等待狀態。而在fork/join框架實現中,
  如果某個子問題由於等待另外一個子問題的完成而無法繼續運行。那麽處理
  該子問題的線程會主動尋找其他尚未運行的子問題來執行.這種方式減少了
  線程的等待時間,提高了性能

13、JUC--ForkJoinPool 分支/合並框架 工作竊取(未完成)