我明白當我執行Parallel.For和類似構造時,TPL使用工作竊取隊列來完成任務。任務並行庫如何在終端服務器或Web應用程序中擴展?
如果我正確理解這一點,構造將啓動一些任務,每個任務將開始處理項目。如果其中一項任務完成了他們的分配項目,它將開始從尚未完成其他任務的項目中竊取項目。這解決了項目1-100處理便宜而項目101-200昂貴的問題,並且兩項任務中的一項將僅處於空閒狀態直到另一項完成。 (我知道這是一個簡化的exaplanation。)
但是,這將如何在終端服務器或Web應用程序上進行擴展(假設我們在可在Web應用程序中運行的代碼中使用TPL)?我們可能會因爲有N個應用程序並行運行而導致CPU使用任務飽和嗎?
有沒有關於這個話題的任何信息,我應該閱讀?我還沒有找到特別的東西,但這並不意味着沒有。
感謝您的鏈接,這種信息正是我一直在尋找的。 – 2010-05-08 03:41:30