多執行緒之SRWLOCK

2021-07-10 06:07:15 字數 988 閱讀 2721

下面就來看看如何使用讀寫鎖,要注意編譯讀寫鎖程式需要vs2008,執行讀寫鎖程式要在vista或windows server2008系統(比這兩個更高階的系統也可以)。讀寫鎖的主要函式就五個,分為初始化函式,寫入者執行緒申請和釋放函式,讀取者執行緒申請和釋放函式,以下是詳細的函式使用說明:

第乙個initializesrwlock

函式功能:初始化讀寫鎖

函式原型:

void 

initializesrwlock

(psrwlock 

srwlock);

函式說明:初始化(沒有刪除或銷毀

srwlock

的函式,系統會自動清理)

第二個acquiresrwlockexclusive

函式功能:寫入者執行緒申請寫資源。

函式原型:

void 

acquiresrwlockexclusive

(psrwlock 

srwlock);

第三個releasesrwlockexclusive

函式功能:寫入者執行緒寫資源完畢,釋放對資源的占用。

函式原型:

void 

releasesrwlockexclusive

(psrwlock 

srwlock);

第四個acquiresrwlockshared

函式功能:讀取者執行緒申請讀資源。

函式原型:

void 

acquiresrwlockshared

(psrwlock 

srwlock);

第五個releasesrwlockshared

函式功能:讀取者執行緒結束讀取資源,釋放對資源的占用。

函式原型:

void 

releasesrwlockshared

(psrwlock 

srwlock);

注意乙個執行緒僅能鎖定資源一次,不能多次鎖定資源。

多執行緒 十一 讀寫鎖SRWLock

參考自 本篇將介紹一種新方法 讀寫鎖srwlock 來解決這一問題。讀寫鎖在對資源進行保護的同時,還能區分想要讀取資源值的執行緒 讀取者執行緒 和想要更新資源的執行緒 寫入者執行緒 對於讀取者執行緒,讀寫鎖會允許他們併發的執行。當有寫入者執行緒在占有資源時,讀寫鎖會讓其它寫入者執行緒和讀取者執行緒等...

多執行緒之執行緒同步

pulse lockobj 表示釋放當前被lock的lockobj,容許其他執行緒呼叫。相當於暫時掛起當前執行緒 wait lockobj 表示等待當前被其他執行緒占用的lockobj。下面的 將會交替執行兩個執行緒 class ticktock console.write tick monitor...

多執行緒之執行緒池

執行緒框架關係 executor 介面 executorservice 介面 繼承 executor abstractexecutorservice 抽象類 實現 executorservice threadpoolexecutor 繼承abstractexecutorservice 過載一系列方法...