我正在開發應用程序與幾個線程(每個正在處理它的隊列)和並行任務(Parallel.For或只是Thread.StartNew)。Threading.Thread和Threading.Task在相同的應用程序,任務考慮到這一點?
我的問題是,如果在最新版本的線程(如線程池,任務等)中引入的MS線程組件知道其他線程時,我們在新線程上執行操作時手動定義了其他線程。例如:如果我有4個CPU和1個線程在一個隊列上工作(線程不總是工作,它使用重置事件等),並且我有10個並行操作在其任務上運行(每個)。這是否意味着3個任務將與我的應用程序一起運行,而其他任務等待它們(任務)完成?當線程進入睡眠狀態時(會執行任務操作將在線程所在的cpu上運行嗎?如果發生這種情況,當我的線程需要立即運行並且花費CPU時間的任務掛起時會發生什麼? ?豈不是我的線程也不會運行,或在某些時候,我會看到上下文切換?)
大量的和問題很多的...希望有人會耐心等待,並有我一個答案:)
謝謝, Tzahi