linux线程下的读写锁
生活随笔
收集整理的這篇文章主要介紹了
linux线程下的读写锁
小編覺得挺不錯的,現在分享給大家,幫大家做個參考.
讀寫鎖實際是一種特殊的自旋鎖,它把對共享資源的訪問者劃分成讀者和寫者,讀者只對共享資源進行讀訪問,寫者則需要對共享資源進行寫操作。這種鎖相對于自旋鎖而言,能提高并發性,因為在多處理器系統中,它允許同時有多個讀者來訪問共享資源,最大可能的讀者數為實際的邏輯CPU數。寫者是排他性的,一個讀寫鎖同時只能有一個寫者或多個讀者(與CPU數相關),但不能同時既有讀者又有寫者。
這里我們出現了一個新的概念,自旋鎖;?
鎖分為兩種,一是自旋鎖,即在正處在臨界資源的線程很短的時間內將釋放鎖,所以自旋鎖再沒有申請到鎖的情況下,等待的過程中隔一小段時間就去看是否釋放了資源;例如讀寫鎖?
第二種是掛起等待鎖,即在沒有申請到資源的情況下,一直掛起等待直到有空閑的資源,例如:信號量、互斥鎖
讀寫鎖的函數接口?
讀寫鎖的初始化與銷毀?
?
參數rwlock表示的是一個讀寫鎖,attr是讀寫鎖的屬性,一般設置為NULL;
讀加鎖:?
寫加鎖?
?
rdlock若申請不到鎖,則自旋,tryrdlock若申請不到鎖,則返回,由用戶自旋;
解鎖:?
讀者—寫者模型?
代碼驗證讀寫鎖?
?
我們可以通過讓讀者速度快而寫者速度慢來驗證出寫者的優先級是高于讀者的?
總結
以上是生活随笔為你收集整理的linux线程下的读写锁的全部內容,希望文章能夠幫你解決所遇到的問題。
- 上一篇: pthread_cleanup_push
- 下一篇: linux 其他常用命令