色哟哟视频在线观看-色哟哟视频在线-色哟哟欧美15最新在线-色哟哟免费在线观看-国产l精品国产亚洲区在线观看-国产l精品国产亚洲区久久

0
  • 聊天消息
  • 系統消息
  • 評論與回復
登錄后你可以
  • 下載海量資料
  • 學習在線課程
  • 觀看技術視頻
  • 寫文章/發帖/加入社區
會員中心
創作中心

完善資料讓更多小伙伴認識你,還能領取20積分哦,立即完善>

3天內不再提示

詳談Linux操作系統的三種狀態的讀寫鎖

如意 ? 來源:良許Linux ? 作者:良許 ? 2020-09-27 14:57 ? 次閱讀

讀寫鎖是另一種實現線程間同步的方式。與互斥量類似,但讀寫鎖將操作分為讀、寫兩種方式,可以多個線程同時占用讀模式的讀寫鎖,這樣使得讀寫鎖具有更高的并行性。

讀寫鎖的特性為:寫獨占,讀共享;寫鎖優先級高。對于讀寫鎖,掌握了這12個字就足矣了。

Linux環境下,讀寫鎖具有以下三種狀態:

讀模式下加鎖狀態 (讀鎖)

寫模式下加鎖狀態 (寫鎖)

不加鎖狀態

雖然讀寫鎖有讀鎖、寫鎖、不加鎖三種狀態,但其實它只有一把鎖,而非三把。

前文提到,讀寫鎖的特性為:寫獨占,讀共享;寫鎖優先級高。具體來講:

讀寫鎖是“寫模式加鎖”時, 解鎖前,所有嘗試對該鎖進行加鎖(不管是讀鎖還是寫鎖)的線程都會被阻塞;--》 寫獨占

讀寫鎖是“讀模式加鎖”時, 如果線程以讀模式對其加鎖會成功;如果線程以寫模式加鎖會阻塞。--》 讀共享

讀寫鎖是“讀模式加鎖”時, 既有試圖以寫模式加鎖的線程,也有試圖以讀模式加鎖的線程。那么讀寫鎖會阻塞隨后的讀模式鎖請求,優先滿足寫模式鎖。--》 寫鎖優先級高

讀寫鎖也叫共享-獨占鎖。當讀寫鎖以讀模式鎖住時,它是以共享模式鎖住的;當它以寫模式鎖住時,它是以獨占模式鎖住的。寫獨占、讀共享。

讀寫鎖非常適合于對數據結構讀的次數遠大于寫的情況。因為讀鎖是共享的,這樣可以提高并行性。

主要應用函數:

pthread_rwlock_init函數

pthread_rwlock_destroy函數

pthread_rwlock_rdlock函數

pthread_rwlock_wrlock函數

pthread_rwlock_tryrdlock函數

pthread_rwlock_trywrlock函數

pthread_rwlock_unlock函數

以上7 個函數的返回值都是:成功返回0,失敗直接返回錯誤號。

pthread_rwlock_t類型:用于定義一個讀寫鎖變量,比如:pthread_rwlock_t rwlock;

##pthread_rwlock_init函數

函數原型:

int pthread_rwlock_init(pthread_rwlock_t restrict rwlock, const pthread_rwlockattr_t restrict attr);

函數作用:初始化一把讀寫鎖

參數說明:

rwlock:傳出參數,調用時應傳&rwlock給該函數;

attr:表示讀寫鎖屬性,通常傳NULL,表示使用默認屬性;

##pthread_rwlock_destroy函數

函數原型:

int pthread_rwlock_destroy(pthread_rwlock_t *rwlock);

函數作用:銷毀一把讀寫鎖

##pthread_rwlock_rdlock函數

函數原型:

int pthread_rwlock_rdlock(pthread_rwlock_t *rwlock);

函數作用:以讀方式請求讀寫鎖。(常簡稱為:請求讀鎖)

##pthread_rwlock_wrlock函數

函數原型:

int pthread_rwlock_wrlock(pthread_rwlock_t *rwlock);

函數作用:以寫方式請求讀寫鎖。(常簡稱為:請求寫鎖)

##pthread_rwlock_unlock函數

函數原型:

int pthread_rwlock_unlock(pthread_rwlock_t *rwlock);

函數作用:解鎖。

##pthread_rwlock_tryrdlock函數

函數原型:

int pthread_rwlock_tryrdlock(pthread_rwlock_t *rwlock);

函數作用:非阻塞以讀方式請求讀寫鎖(非阻塞請求讀鎖)

##pthread_rwlock_trywrlock函數

函數原型:

int pthread_rwlock_trywrlock(pthread_rwlock_t *rwlock);

函數作用:非阻塞以寫方式請求讀寫鎖(非阻塞請求寫鎖)
責編AJX

聲明:本文內容及配圖由入駐作者撰寫或者入駐合作網站授權轉載。文章觀點僅代表作者本人,不代表電子發燒友網立場。文章及其配圖僅供工程師學習之用,如有內容侵權或者其他違規問題,請聯系本站處理。 舉報投訴
  • Linux
    +關注

    關注

    87

    文章

    11320

    瀏覽量

    209845
  • 線程
    +關注

    關注

    0

    文章

    505

    瀏覽量

    19705
  • 操作環境
    +關注

    關注

    0

    文章

    9

    瀏覽量

    7063
收藏 人收藏

    評論

    相關推薦

    嵌入式開發中三種操作系統的分析與比較

    三種常用的嵌入式操作系統——Palm OS、Windows CE、Linux;在此基礎上、分析、比較這三種嵌入式操作系統,給出它們之間的異同
    發表于 03-11 10:03

    嵌入式開發中三種操作系統的分析與比較

    三種常用的嵌入式操作系統——Palm OS、Windows CE、Linux;在此基礎上、分析、比較這三種嵌入式操作系統,給出它們之間的異同
    發表于 10-15 14:42

    嵌入式開發中三種操作系統的分析與比較

    三種常用的嵌入式操作系統——Palm OS、Windows CE、Linux;在此基礎上、分析、比較這三種嵌入式操作系統,給出它們之間的異同
    發表于 10-16 09:45

    嵌入式開發中三種操作系統的分析與比較

    三種常用的嵌入式操作系統——Palm OS、Windows CE、Linux;在此基礎上、分析、比較這三種嵌入式操作系統,給出它們之間的異同
    發表于 10-18 10:01

    嵌入式開發中三種操作系統的分析與比較

    三種常用的嵌入式操作系統——Palm OS、Windows CE、Linux;在此基礎上、分析、比較這三種嵌入式操作系統,給出它們之間的異同
    發表于 10-26 09:35

    嵌入式開發中三種操作系統的分析與比較

    三種常用的嵌入式操作系統——Palm OS、Windows CE、Linux;在此基礎上、分析、比較這三種嵌入式操作系統,給出它們之間的異同
    發表于 06-23 11:01

    嵌入式開發中三種操作系統對比分析哪個好

    三種常用的嵌入式操作系統——Palm OS、Windows CE、Linux;在此基礎上、分析、比較這三種嵌入式操作系統,給出它們之間的異同
    發表于 12-20 06:24

    三種常用的嵌入式操作系統是什么

    三種常用的嵌入式操作系統——Palm OS、Windows CE、Linux;在此基礎上、分析、比較這三種嵌入式操作系統,給出它們之間的異同
    發表于 12-22 07:36

    Linux操作系統

    linux的教學內容1 、Linux概述 2 、Linux操作系統安裝3、 Linux的內核 4 、Li
    發表于 04-10 16:54 ?0次下載
    <b class='flag-5'>Linux</b><b class='flag-5'>操作系統</b>

    Linux操作系統原理及應用

    Linux操作系統原理及應用 1.1  操作系統的地位 1.2  操作系統的功能 1.3  操作系統的發
    發表于 04-28 14:53 ?0次下載

    三種嵌入式操作系統的分析與比較

    介紹三種常用的嵌入式操作系統—— Palm OS、Windows CE、Linux; 在此基礎上, 分析、比較這三種嵌入式操作系統, 給出它
    發表于 05-15 13:54 ?8次下載

    三種通用嵌入式操作系統的分析與比較

    本文介紹了三種通用的嵌入式操作系統VxWorks、Windows CE、Linux 以及它們的各自的特點,并通過比較他們的優缺點分析他們各自適應的領域。
    發表于 09-15 16:49 ?21次下載

    什么是Linux操作系統

    什么是Linux操作系統  簡單地說,Linux是一套
    發表于 12-26 12:04 ?1408次閱讀

    Linux操作系統與Windows操作系統的五大區別

    Linux操作系統和Windows操作系統身為操作系統巨頭里面的兩大巨頭,他們有什么區別呢?首先,先要聲明一點,所有以
    發表于 07-10 16:28 ?7950次閱讀

    Linux操作系統修改內核參數的三種方法詳細說明

    linux內核的參數設置怎么弄呢,Linux 操作系統修改內核參數有以下三種方式:
    發表于 10-06 18:03 ?1.1w次閱讀
    <b class='flag-5'>Linux</b><b class='flag-5'>操作系統</b>修改內核參數的<b class='flag-5'>三種</b>方法詳細說明
    主站蜘蛛池模板: 久久精品人人做人人爽97| 麻豆产精品一二三产区区| 亚洲欧美日本久久综合网站| 年轻的老师5理伦片| 久久久久久九九| 国产高清在线露脸一区| 粗好大用力好深快点漫画| ping色堂| 精品无码一区二区三区中文字幕| 国产美女裸身网站免费观看视频 | 99欧美精品| 扒开老师粉嫩的泬10P| 日本熟妇多毛XXXXX视频| 国内精品乱码卡一卡2卡三卡| 夜色88V精品国产亚洲AV| 绝色娇嫩美人妻老师| 九九热这里有精品| 国产乱国产乱老熟300部视频| www.av天堂网.com| AV天堂AV亚洲啪啪久久无码| 2020亚洲国产在线播放在线| 再深点灬舒服灬太大了在线视频| 亚洲精品色情婷婷在线播放| 亚洲成A人片在线观看中文不卡| 天天操狠狠操夜夜操| 亚洲h视频在线观看| 亚洲视频精选| 欲香欲色天天综合和网| 最新中文字幕在线视频| 一个吃奶两个添下面H| 伊人久久大香网| 99久久人妻无码精品系列性欧美| 67194免费入口| 成人在线视频免费看| 国产美女又黄又爽又色视频网站| 国产人妻人伦精品久久无码| 国产偷抇久久精品A片蜜臀AV| 精品国产国产精2020久久日| 麻豆AV无码蜜臀AV色哟| 秋霞电影院兔费理论84MB| 亚洲国产在线精品第二剧情不卡|