C# 基元執行緒同步構造
阿新 • • 發佈:2021-11-08
注:基元指可以再程式碼中使用的最簡單的構造.
執行緒基元構造分為兩種,使用者模式和核心模式.
使用者模式分析:
優點:速度比核心模式塊,使用特殊cpu指令來協調執行緒,協調實在硬體級別發生的.在此構造上的執行緒池執行緒一旦發生阻塞,並不會建立的新的執行緒,因為它不會認為自己發生阻塞.。cpu指令只會阻塞執行緒很短的時間
缺點:只能核心才能停止當前構造的執行緒池執行緒.且會被系統執行緒搶佔,期間,他會在使用者模式中保持執行,導致浪費cpu時間,本可以去做別的時間哪怕是停止也好,停止能省電.
核心模式分析:
優點:核心模式構造的執行緒在等待別的執行緒執行資源時,會發生阻塞避免浪費cpu資源,當執行資源可用時會被重新喚起.
缺點:將執行緒從使用者模式切換到核心付出的代價很大.所以避免使用核心模式執行緒構造.
兩種模式對於在一個構造上等待的執行緒,如果擁有這個構造的執行緒不釋放,在使用者模式下,就是活鎖,既佔用cpu資源又耗費記憶體.在核心模式下,僅消耗記憶體.