臨界段CCriticalSection的使用

2021-07-09 14:00:17 字數 714 閱讀 6481

類ccriticalsection的物件表示乙個「臨界區」,它是乙個用於同步的物件,同一時刻只允許乙個執行緒訪問資源或**區。臨界區在控制一次只有乙個執行緒修改資料或其它的控制資源時非常有用。例如,在鍊錶中增加乙個結點就只允許一次乙個執行緒進行。通過使用ccriticalsection物件來控制鍊錶,就可以達到這個目的。它就像是一把鑰匙,哪個執行緒獲得了它就獲得了執行執行緒的權力,而把其他執行緒統統阻塞。

ccriticalsection類的建構函式原型如下:

ccriticalsection() 

可以發現這個類的建構函式沒有引數,所以建立乙個ccriticalsection類的物件非常簡單,只有如下即可:

ccriticalsection criticalsection; 

示例:使用臨界段編寫乙個有兩個執行緒的應用程式。

1.建立單文件應用程式;

2.在檢視類的實現檔案中定義乙個臨界段物件:

ccriticalsection criticalsection; 

3.在檢視類的實現檔案中定義兩個執行緒函式:

uint messagethread1(lpvoid pparam)   

uint messagethread2(lpvoid pparam)   

4.在檢視類滑鼠左鍵訊息函式編寫如下:

void cthreadtestview::onlbuttondown(uint nflags, cpoint point)   

臨界段CCriticalSection的使用

類ccriticalsection的物件表示乙個 臨界區 它是乙個用於同步的物件,同一時刻僅僅同意乙個執行緒訪問資源或 區。臨界區在控制一次僅僅有乙個執行緒改動資料或其他的控制資源時很實用。比如,在鍊錶中新增乙個結點就僅僅同意一次乙個執行緒進行。通過使用ccriticalsection物件來控制鍊錶...

臨界段CCriticalSection的使用

類ccriticalsection的物件表示乙個 臨界區 它是乙個用於同步的物件,同一時刻僅僅同意乙個執行緒訪問資源或 區。臨界區在控制一次僅僅有乙個執行緒改動資料或其他的控制資源時很實用。比如,在鍊錶中新增乙個結點就僅僅同意一次乙個執行緒進行。通過使用ccriticalsection物件來控制鍊錶...

臨界段CCriticalSection的使用

類ccriticalsection的物件表示乙個 臨界區 它是乙個用於同步的物件,同一時刻僅僅同意乙個執行緒訪問資源或 區。臨界區在控制一次僅僅有乙個執行緒改動資料或其他的控制資源時很實用。比如,在鍊錶中新增乙個結點就僅僅同意一次乙個執行緒進行。通過使用ccriticalsection物件來控制鍊錶...