臨界區,互斥體,訊號量三種鎖的區別

2021-06-19 10:18:56 字數 461 閱讀 1398

三種鎖各有優缺點:

1 .效率

臨界區是輕量級的鎖,通常不會產生核心物件。其內部實現是基於自旋鎖與事件物件等待來實現鎖定的。 互斥體與訊號量都是核心物件,效率比臨界區差。

2.重入

臨界區與互斥體都是可以重入的,也就是不會鎖定自己執行緒的多次進入。多執行緒鎖粒度比較粗的時候, 且互相呼叫,重入的可能性很大,是否支援重入很重要。

3. 作用範圍

核心物件通常作用範圍是垮程序的。所以互斥量與訊號量都是可以垮程序使用。

4.  釋放

互斥量與訊號量的釋放都是基於引用計數,獲取後都需要呼叫釋放。

5. 同步

訊號量可以同步資源的訪問,互斥體與臨界區只能互斥。我們需要同步訪問一些資源的時候,可以使用訊號量。在單寫多讀的場景下,使用訊號量有較大優勢。

6. 粒度

臨界區基於自旋的實現方式決定了它通常不適合粗粒度的鎖定,加鎖後必須快速解鎖。

互斥鎖 臨界區 訊號量 事件的區別

引用位址 四種程序或執行緒同步互斥的控制方法 1 臨界區 通過對多執行緒的序列化來訪問公共資源或一段 速度快,適合控制資料訪問。2 互斥量 為協調共同對乙個共享資源的單獨訪問而設計的。3 訊號量 為控制乙個具有有限數量使用者資源而設計。4 事 件 用來通知執行緒有一些事件已發生,從而啟動後繼任務的開...

互斥鎖 臨界區 訊號量 事件的區別

四種程序或執行緒同步互斥的控制方法 1 臨界區 通過對多執行緒的序列化來訪問公共資源或一段 速度快,適合控制資料訪問。2 互斥量 為協調共同對乙個共享資源的單獨訪問而設計的。3 訊號量 為控制乙個具有有限數量使用者資源而設計。4 事 件 用來通知執行緒有一些事件已發生,從而啟動後繼任務的開始。臨界區...

事件 訊號量 臨界區 互斥鎖

handle createevent lpsecurity attributes lpeventattributes,安全屬性 bool bmanualreset,復位方式 bool binitialstate,初始狀態 false建立時為未通知狀態 true建立時為已通知狀態 lpctstr lp...