日韩性视频-久久久蜜桃-www中文字幕-在线中文字幕av-亚洲欧美一区二区三区四区-撸久久-香蕉视频一区-久久无码精品丰满人妻-国产高潮av-激情福利社-日韩av网址大全-国产精品久久999-日本五十路在线-性欧美在线-久久99精品波多结衣一区-男女午夜免费视频-黑人极品ⅴideos精品欧美棵-人人妻人人澡人人爽精品欧美一区-日韩一区在线看-欧美a级在线免费观看

歡迎訪問 生活随笔!

生活随笔

當(dāng)前位置: 首頁 > 运维知识 > linux >内容正文

linux

linux操作系统之读写锁

發(fā)布時間:2023/11/30 linux 24 豆豆
生活随笔 收集整理的這篇文章主要介紹了 linux操作系统之读写锁 小編覺得挺不錯的,現(xiàn)在分享給大家,幫大家做個參考.

(1)讀寫鎖:只有一把鎖,但是有兩種狀態(tài)(讀,寫)

? ? ? ? ? ? ?1)讀寫鎖的三種狀態(tài):讀鎖,寫鎖,不加鎖

? ? ? ? ? ? ?2)讀寫鎖特性(12字):寫鎖優(yōu)先級高,寫?yīng)氄?#xff0c;讀共享

? ? ? ? ? ? ? ? ? ? 1>寫模式加鎖時,解鎖前,所有對該線程加鎖的線程都會被阻塞。

? ? ? ? ? ? ? ? ? ? 2>讀模式加鎖時,如果線程是讀加鎖則成功,如果線程是寫加鎖會阻塞。

? ? ? ? ? ? ? ? ? ?3>讀鎖、寫鎖并行阻塞時,寫鎖優(yōu)先級高,即解鎖后優(yōu)先執(zhí)行寫鎖操作。

? ? ? ? ? ?3)讀寫鎖非常適合對數(shù)據(jù)讀的次數(shù)比寫的次數(shù)多。

(2)讀寫鎖函數(shù):成功返回0,失敗直接返回錯誤號。

? ? ? ? ? ? ? ? ? pthread_rwlock_t類型 用于定義一個讀寫鎖變量

? ? ? ? ? 1)pthread_rwlock_init:初始化一把讀寫鎖

? ? ? ? ? ? ? ? int pthread_rwolck_init(pthread_rwlock_t*restrict rwlock,const pthread_rwlockattr_t*restrict attr);? ??

? ? ? ? ? ? ? ?restrict關(guān)鍵字:只用于限制指針,所有修改該指針指向內(nèi)存中內(nèi)容的操作,只能通過本指針來完成,不能通過除本指針之外的其它變量或指針修改。

? ? ? ? ? ? ? 參數(shù)2:attr表讀寫屬性,通常使用NULL,表示默認(rèn)屬性

? ? ? ? ?2)銷毀一把讀寫鎖:pthread_rwlock_destroy

? ? ? ? ? ? ? ?int pthread_rwlock_destroy(pthread_rwlock_t * rwlock);? ?

? ? ? ? 3)以讀方式請求加鎖:pthread_rwlock_rdlock

? ? ? ? ? ? ? ??int pthread_rwlock_rdlock(pthread_rwlock_t * rwlock);? ?

? ? ? ? 4)以寫方式請求加鎖:pthread_rwlock_rdlock

? ? ? ? ? ? ? ??int pthread_rwlock_wrlock(pthread_rwlock_t * rwlock);? ??

? ? ? ? 5)解鎖:pthread_rwlock_unlock

? ? ? ? ? ? ? ?int pthread_rwlock_unlock(pthread_rwlock_t * rwlock);? ?

? ? ? ? 6)非阻塞請求讀鎖:pthread_rwlock_tryrdlock

? ? ? ? ? ? ? ? int pthread_rwlock_tryrdlock(pthread_rwlock_t * rwlock);?

? ? ? ? 7)非阻塞請求寫鎖:pthread_rwlock_trywrlock

? ? ? ? ? ? ? ? int pthread_rwlock_trywrock(pthread_rwlock_t * rwlock);?

(3)讀寫鎖示例:多個線程對同一全局?jǐn)?shù)據(jù)進(jìn)行讀寫操作

? ? ? ? ? ? ? ? ??

? ? ? ? ? ?

總結(jié)

以上是生活随笔為你收集整理的linux操作系统之读写锁的全部內(nèi)容,希望文章能夠幫你解決所遇到的問題。

如果覺得生活随笔網(wǎng)站內(nèi)容還不錯,歡迎將生活随笔推薦給好友。