引言
臨界區、互斥、訊號量都是在併發執行中,對資源的訪問進行控制的方式。在本文中,資源即為**。
1、臨界區
臨界區即獨佔式資源,在多執行緒中,有且只有乙個執行緒可以訪問臨界區。
例1:多個執行緒做同樣的一件事:列印檔案a。
定義臨界區;
初始化臨界區;
執行緒a主程式
例2:多個執行緒列印不同的檔案。
定義臨界區;
初始化臨界區;
執行緒a執行緒b
主程式
2、互斥
互斥的使用方法與臨界區基本一致,區別在於適用範圍。互斥適用於不同應用程式之間的資源訪問控制,臨界區適用於當前應用程式中不同執行緒之間的資源訪問控制。最好不要將互斥應用於單個應用程式中,它的執行速度較臨界區要慢。
3、訊號量
訊號量適用於多執行緒對一定數量的資源的訪問控制。
例:2個取票口,5個執行緒模擬取票。
訊號量 signal = 2;//意為2個取票口
執行緒a主程式
臨界區,互斥量與訊號量
1 訊號量可以由任何執行緒 以及中斷 釋放,它用於同步的時候就像交通燈,執行緒只有在獲得許可的時候才可以執行,強調的是執行步驟 互斥量只能由持有它的執行緒釋放,即只有 鎖上 它的那個執行緒才有 鑰匙 開啟它。它用於互斥的時候就像一把鑰匙,只有獲得鑰匙的執行緒才可以執行,強調的是許可和許可權。2 使用...
臨界區 互斥 訊號量 事件區別
四種程序或執行緒同步互斥的控制方法 1 臨界區 通過對多執行緒的序列化來訪問公共資源或一段 速度快,適合控制資料訪問。2 互斥量 為協調共同對乙個共享資源的單獨訪問而設計的。3 訊號量 為控制乙個具有有限數量使用者資源而設計。4 事 件 用來通知執行緒有一些事件已發生,從而啟動後繼任務的開始。臨界區...
事件 訊號量 臨界區 互斥鎖
handle createevent lpsecurity attributes lpeventattributes,安全屬性 bool bmanualreset,復位方式 bool binitialstate,初始狀態 false建立時為未通知狀態 true建立時為已通知狀態 lpctstr lp...