下面就來看看如何使用讀寫鎖,要注意編譯讀寫鎖程式需要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 過載一系列方法...