在线观看www成人影院-在线观看www日本免费网站-在线观看www视频-在线观看操-欧美18在线-欧美1级

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

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

3天內不再提示

讀寫鎖的實現原理規則

麥辣雞腿堡 ? 來源:嵌入式Linux系統開發 ? 作者:嵌入式Linux系統開 ? 2023-07-21 11:21 ? 次閱讀

讀寫鎖

互斥鎖或自旋鎖要么是加鎖狀態、要么是不加鎖狀態,而且一次只有一個線程可以對其加鎖。

讀寫鎖有3 種狀態:讀模式下的加鎖狀態(以下簡稱讀加鎖狀態)、寫模式下的加鎖狀態(以下簡稱寫加鎖狀態)和不加鎖狀態(見),一次只有一個線程可以占有寫模式的讀寫鎖,但是可以有多個線程同時占有讀模式的讀寫鎖。因此可知,讀寫鎖比互斥鎖具有更高的并行性!

圖片

讀寫鎖有如下兩個規則:

  1. 當讀寫鎖處于寫加鎖狀態時,在這個鎖被解鎖之前,所有試圖對這個鎖進行加鎖操作(不管是以讀模式加鎖還是以寫模式加鎖)的線程都會被阻塞。
  2. 當讀寫鎖處于讀加鎖狀態時,所有試圖以讀模式對它進行加鎖的線程都可以加鎖成功;但是任何以寫模式對它進行加鎖的線程都會被阻塞,直到所有持有讀模式鎖的線程釋放它們的鎖為止。

讀寫鎖非常適合于對共享數據讀的次數遠大于寫的次數的情況。

初始化和銷毀讀寫鎖

#include < pthread.h >

int pthread_rwlock_init(pthread_rwlock_t *rwlock, const pthread_rwlockattr_t *attr);
int pthread_rwlock_destroy(pthread_rwlock_t *rwlock);

加鎖和解鎖

#include < pthread.h >

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

    關注

    87

    文章

    11345

    瀏覽量

    210392
  • 線程
    +關注

    關注

    0

    文章

    505

    瀏覽量

    19758
收藏 人收藏

    評論

    相關推薦

    Linux下線程間通訊---讀寫和條件變量

    讀寫,它把對共享資源的訪問者劃分成讀者和寫者,讀者只對共享資源進行讀訪問,寫者則需要對共享資源進行寫操作。件變量是線程可用的一種同步機制,條件變量給多個線程提供了一個回合的場所,條件變量和互斥量一起使用,允許線程以無競爭的方式等待特定的條件發生。
    的頭像 發表于 08-26 20:44 ?1553次閱讀
    Linux下線程間通訊---<b class='flag-5'>讀寫</b><b class='flag-5'>鎖</b>和條件變量

    Rust 語言中的 RwLock內部實現原理

    Rust是一種系統級編程語言,它帶有嚴格的內存管理、并發和安全性規則,因此很受廣大程序員的青睞。RwLock(讀寫)是 Rust 中常用的線程同步機制之一,本文將詳細介紹 Rust 語言
    的頭像 發表于 09-20 11:23 ?919次閱讀

    ADA4350如何實現串口讀寫

      問:ADA4350可寫不可讀是怎么回事,如何實現串口讀寫?
    的頭像 發表于 10-31 16:35 ?960次閱讀
    ADA4350如何<b class='flag-5'>實現</b>串口<b class='flag-5'>讀寫</b>

    Linux讀寫邏輯解析—嘗試獲取寫

    Rwsem的count成員還有一些bit用來標記當前讀寫狀態(waiter bit和handoff bit),也需要根據情況進行調整
    的頭像 發表于 12-04 11:12 ?780次閱讀
    Linux<b class='flag-5'>讀寫</b><b class='flag-5'>鎖</b>邏輯解析—嘗試獲取寫<b class='flag-5'>鎖</b>

    命名管道FIFO讀寫規則

    Linux命名管道FIFO的讀寫規則《Linux程序設計(第3版)》對于Linux命名管道的讀寫規則詳解的不夠詳細和清楚,查了些資料,在此總結一下: 1.從FIFO中讀取數據:約定:如
    發表于 09-24 10:49

    Lock體系結構和讀寫機制解析

    中,如何實現ABC的順序打印問題,基本思路就是基于線程的等待通知機制,但是實現方式很多,上述只是其中一種方式。二、讀寫機制1、基礎API簡介重入
    發表于 01-05 17:53

    RT-Thread實現的互斥屬性包括哪些

    * lock);函數返回 lock無效返回EINVAL,否則返回0或EPERM。互斥屬性RT-Thread實現的互斥屬性包括互斥類型和互斥
    發表于 08-12 15:06

    基于規則的RADIUS Server設計與實現

             本文在分析RADIUS 協議原理基礎上,給出了一種基于規則的RADIUS Server 的設計方案和實現策略,規則的引入可以很方便
    發表于 09-14 08:20 ?23次下載

    深入理解Linux RCU:RCU是讀寫的替代者

    請注意,在單個CPU上讀寫比RCU慢一個數量級,在16個CPU上讀寫比RCU幾乎要慢兩個數量級。隨著CPU數量的增加,RCU的擴展性優勢越來越突出。可以這么說,RCU幾乎就是水平擴
    的頭像 發表于 05-10 09:13 ?1.1w次閱讀
    深入理解Linux RCU:RCU是<b class='flag-5'>讀寫</b><b class='flag-5'>鎖</b>的替代者

    分布式的基本原理和案例實現

    前面我們有聊過樂觀和悲觀實現,均是對于單體架構的場景下的實現。那么現在我們來總結看下分布式情況下如何實現
    的頭像 發表于 07-01 14:53 ?3391次閱讀
    分布式<b class='flag-5'>鎖</b>的基本原理和案例<b class='flag-5'>實現</b>

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

    讀寫是另一種實現線程間同步的方式。與互斥量類似,但讀寫將操作分為讀、寫兩種方式,可以多個線程同時占用讀模式的
    的頭像 發表于 09-27 14:57 ?3163次閱讀

    MySQL是怎么加行級的?有什么規則

    是不是很多人都對 MySQL 加行級規則搞的迷迷糊糊,對記錄一會加的是 next-key ,一會加是間隙,一會又是記錄
    的頭像 發表于 11-17 09:28 ?854次閱讀

    如何用C++11實現自旋

    下面我會分析一下自旋,并代碼實現自旋和互斥的性能對比,以及利用C++11實現自旋。 一:
    的頭像 發表于 11-11 16:48 ?1528次閱讀
    如何用C++11<b class='flag-5'>實現</b>自旋<b class='flag-5'>鎖</b>

    如何實現Redis分布式

    機制,下面將詳細介紹如何實現Redis分布式。 一、引言 在分布式系統中,多個節點可能同時讀寫同一共享資源。如果沒有實現互斥訪問和同步機制,就會產生數據不一致和競態條件等問題。解決這
    的頭像 發表于 12-04 11:24 ?752次閱讀

    互斥和自旋實現原理

    保護共享資源不被多個線程同時訪問。它的實現原理主要包括以下幾個方面: 1. 的初始化 互斥鎖在創建時需要進行初始化,通常包括設置的狀態為“未鎖定”。在某些實現中,還需要初始化
    的頭像 發表于 07-10 10:07 ?609次閱讀
    主站蜘蛛池模板: xxx性xxx乱 | 久久免费观看国产精品 | 77米奇影院 | 久久88色综合色鬼 | 一区二区三区亚洲 | 日日噜噜噜夜夜爽爽狠狠视频 | 全黄h全肉边做边吃奶在线观看 | 欧美性黑人极品hd网站 | sihu国产午夜精品一区二区三区 | 2021天天干 | 亚欧免费视频一区二区三区 | 香蕉视频啪啪 | 手机看日韩毛片福利盒子 | 国产福利2021最新在线观看 | 中文字幕色网站 | 色偷偷男人天堂 | 午夜一级毛片看看 | 成熟女人免费一级毛片 | 在线亚洲免费 | 99 久久99久久精品免观看 | 免费观看国产网址你懂的 | 一区二区在线免费观看 | 欧美激情综合色综合啪啪五月 | 韩国床戏合集三小时hd中字 | 四虎最新影院 | 亚洲黄色小说网站 | 国模欢欢炮交啪啪150 | 波多野结衣50连精喷在线 | 国产欧美高清 | 午夜色视频在线观看 | 午夜视频在线观看完整高清在线 | 久久久久久久久久免免费精品 | 黄在线网站 | 天天擦天天干 | 大尺度视频在线 | 亚洲aa| 你懂得的在线观看免费视频 | 久久久午夜精品理论片 | 国产3p在线播放 | 扒开双腿爽爽爽视频www | 最新免费jlzzjlzz在线播放 |