臨界區 互斥 訊號量

2021-07-27 05:03:52 字數 577 閱讀 3029

引言

臨界區、互斥、訊號量都是在併發執行中,對資源的訪問進行控制的方式。在本文中,資源即為**。

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...