2012-01-31 78 views
1

我閱讀有關併發運行時的文章,並有這篇文章名爲work stealing算法。但我不知道這個算法是什麼!所以我想要一個小小的解釋或一些很好的鏈接,可以幫助我對這種算法進行演示。工作竊取算法

回答

8

最近,我讀了文件,該文件描述了一個Java fork/join框架與工作竊取Algroithms發現here

從紙兩者,我們先從這一點:

Result solve(Problem problem) { 
    if (problem is small) 
     directly solve problem 
    else { 
     split problem into independent parts 
     fork new subtasks to solve each part 
     join all subtasks 
     compose result from subresults 
    } 
} 

這些叉形子任務(在else塊第2行)可以再次出現自行創建更多子任務,從而填補並行工作線程的工作隊列。如果一個線程完成並且沒有其他要做的事情,他可以從另一個線程的隊列中「竊取」工作。

這麼多簡而言之,對於所有的細節,我建議看看這篇論文。

+2

非常翔實的文章。感謝分享。 – Suresh 2016-10-09 03:03:39