問題
Work-Stealing算法是什么
答案
Work-Stealing算法的理念在于讓空閑的線程從忙碌的線程的雙端隊列中偷取任務(wù).
默認(rèn)情況下,一個工作線程從它自己內(nèi)部的雙端隊列的頭部獲取任務(wù).當(dāng)線程的的隊列中沒有任務(wù),它從另外的繁忙的線程的雙端隊列(或者全局的雙端隊列)的尾部獲取任務(wù),因為隊列的尾部是最有可能存在還未執(zhí)行的任務(wù).
這種方式減小了線程之間對任務(wù)的競爭的可能性,它也使得線程以最大可能性去獲取可執(zhí)行的線程,因為它們總是在最有可能存在還未執(zhí)行的任務(wù)的地方尋找任務(wù).