C# 基元線程同步構造

注:基元指可以再代碼中使用的最簡單的構造.

線程基元構造分爲兩種,用戶模式和內核模式.

用戶模式分析:

優點:

1、速度比內核模式塊,使用特殊cpu指令來協調線程,協調實在硬件級別發生的.

2、在此構造上的線程池線程一旦發生阻塞,並不會創建的新的線程,因爲它不會認爲自己發生阻塞.。

3、cpu指令只會阻塞線程很短的時間

缺點:

1、只能內核才能停止當前構造的線程池線程.

2、用戶模式構造的線程會被系統線程搶佔,期間,他會在用戶模式中保持運行,導致浪費cpu時間,本可以去做別的時間哪怕是停止也好,停止能省電.

 

內核模式分析:

優點:內核模式構造的線程在等待別的線程運行資源時,會發生阻塞避免浪費cpu資源,當運行資源可用時會被重新喚起.

缺點:將線程從用戶模式切換到內核付出的代價很大.所以避免使用內核模式線程構造.

 

兩種模式對於在一個構造上等待的線程,如果擁有這個構造的線程不釋放,在用戶模式下,就是活鎖,既佔用cpu資源又耗費內存.在內核模式下,稱爲死鎖,僅消耗內存.

 

發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章