臨界段CCriticalSection的使用

2021-09-06 20:40:17 字數 823 閱讀 8000

類ccriticalsection的物件表示乙個「臨界區」,它是乙個用於同步的物件,同一時刻僅僅同意乙個執行緒訪問資源或**區。臨界區在控制一次僅僅有乙個執行緒改動資料或其他的控制資源時很實用。比如,在鍊錶中新增乙個結點就僅僅同意一次乙個執行緒進行。通過使用ccriticalsection物件來控制鍊錶,就能夠達到這個目的。它就像是一把鑰匙,哪個執行緒獲得了它就獲得了執行執行緒的權力,而把其他執行緒統統堵塞。

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

ccriticalsection() 

能夠發現這個類的建構函式沒有引數,所以建立乙個ccriticalsection類的物件很easy,僅僅有例如以下就可以:

ccriticalsection criticalsection; 

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

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

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

ccriticalsection criticalsection; 

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

uint messagethread1(lpvoid pparam) 

uint messagethread2(lpvoid pparam) 

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

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

執行結果例如以下:

參考資料:

1.臨界段類(ccriticalsection)——mfc

2.《mfc windows應用程式設計(第2版)》

臨界段CCriticalSection的使用

類ccriticalsection的物件表示乙個 臨界區 它是乙個用於同步的物件,同一時刻只允許乙個執行緒訪問資源或 區。臨界區在控制一次只有乙個執行緒修改資料或其它的控制資源時非常有用。例如,在鍊錶中增加乙個結點就只允許一次乙個執行緒進行。通過使用ccriticalsection物件來控制鍊錶,就...

臨界段CCriticalSection的使用

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

臨界段CCriticalSection的使用

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