C 實現多執行緒讀寫鎖

2021-06-03 12:22:29 字數 551 閱讀 7820

在win32下用c++實現多執行緒讀寫鎖

讀寫鎖實際是一種特殊的自旋鎖,它把對共享資源的訪問者劃分成讀者和寫者,讀者只對共享資源進行讀訪問,寫者則需要對共享資源進行寫操作。這種鎖相對於自旋鎖而言,能提高併發性,因為在多處理器系統中,它允許同時有多個讀者來訪問共享資源,最大可能的讀者數為實際的邏輯cpu數。寫者是排他性的,乙個讀寫鎖同時只能有乙個寫者或多個讀者(與cpu數相關),但不能同時既有讀者又有寫者。

現在win32的api,用c++實現自己的讀寫鎖。這組api包括:createmutex,createevent,waitforsingleobject,waitformultipleobjects,resetevent,releasemutex,setevent,closehandle。以下**在vs2005下,已經編譯通過。

rwlockimpl.h

rwlockimpl.cpp

下邊是測試**

rwlockimpl.cpp

下邊是測試**

編譯,執行

執行結果與在win32下用c++實現多執行緒讀寫鎖的相同。

多執行緒學習 讀寫鎖

讀寫鎖 reentrantreadwritelock 具有互斥排他效果,即同一時間只有乙個執行緒在執行鎖後面的任務,這種效率比較搞。讀鎖也稱為共享鎖,寫鎖也稱為排他鎖。多個讀鎖之間不互斥,讀鎖與寫鎖互斥,寫鎖與寫鎖互斥。在沒有執行緒thread進行寫入操作時,進行讀取操作的多個執行緒都可以獲取讀鎖,...

多執行緒之讀寫鎖

之前沒真正使用讀寫鎖,看到別人對讀寫鎖的解釋總感覺一頭霧水。今天親自敲 實驗之後,才明了,原來如此。網上沒有一篇文章是能描述出自己理解的樣子,所以將自己的思路記下來。先提出疑問,邊自答邊找思路,有了思路,再回頭去執行一下 就清晰明了了。如果你急著想要一句話概括讀寫鎖,那我會告訴你 讀鎖是加在讀方法裡...

多執行緒 讀寫鎖模式

讀寫鎖 1.寫寫加鎖 2.讀寫加鎖 3.寫都加鎖 4.讀讀不加鎖 public class readwritelock this readingreaders 因為使用了while,所以,當while結束的時候,說明寫完成了.可以讀取資料了.finally public synchronized v...