读写锁

✍ dations ◷ 2025-11-04 05:22:15 #并发控制

读写锁是计算机程序的并发控制的一种同步机制,也称“共享-互斥锁”、多读者-单写者锁。多读者锁,,“push lock”) 用于解决读写问题(英语:readers–writers problem)。读操作可并发重入,写操作是互斥的。

读写锁通常用互斥锁、条件变量、信号量实现。

某些读写锁允许在读模式与写模式之间升降级。

读写锁可以有不同的操作模式优先级:

Michel Raynal(英语:Michel Raynal)使用两把互斥锁与一个整数计数器实现。计数器b跟踪被阻塞的读线程。互斥锁r保护b,供读者使用。互斥锁g (指"global")确保写操作互斥。伪代码:

Begin Read

End Read

Begin Write

End Write

实现是读操作优先。:76

可使用条件变量c与普通的互斥锁m、整型计数器r(表示正在读的个数)与布尔标志g(表示正在写)来实现读写锁。

lock-for-read操作:

lock-for-write操作:

lock-for-read与lock-for-write各自有自己的逆操作。unlock-for-read通过减量r并在r变为0时通知c。unlock-for-write设置w为false并通知c。

SRWLock,见Windows操作系统API,从Windows Vista开始.

读写锁(Slim reader/writer,SRW, lock)用于进程内的线程间同步。 SRW既不是公平的也不是先进先出的。读写锁数据结构的内部实现就是一个指针。读写锁的性能较临界区有很大的提升,这是因为读写锁是基于原子操作,关键段是基于event内核对象的,从用户模式到内核模式的切换占用了大量的时钟周期。相关API:

read-copy-update (RCU)算法是读写锁的一种替代实现。RCU对读操作是无等待。Linux内核实现了很少写操作的一种RCU叫做seqlock。

相关

  • 悬浮偶极悬浮偶极(Levitated dipole)是一种核聚变实验,将超导圆环设置于反应器内部。超导圆环将产生轴对称磁场,类似于地球或木星的磁层。据信这样的装置可以比其他聚变反应器设计更有效
  • 非洲型稻光稃稻(学名:Oryza glaberrima),又称非洲稻、非洲型稻、西非栽培稻,是人类种植的一种稻属作物。一般认为,光稃稻于两千至三千年前在尼日尔河上游,即今日马里一带得到驯化。光稃稻为
  • 贵湖大学© University of Guelph(探究事物的真理)圭尔夫大学(英文:University of Guelph),位于加拿大安大略省圭尔夫市,是加拿大一所规模中等却有着全面教育的公立大学。圭尔夫大学建立于1
  • 半规管半规管(semicircular canals)是脊椎动物内耳迷路中掌管平衡感的器官,同样是维持平衡和与控制生物体姿势的一内耳感受装置,包括球囊(saccule)、椭圆囊(utricle)和半规管(semicircular
  • 天气现象天气现象是指发生在大气中、地面上的一些物理现象。它包括降水现象、地面凝结现象、视程障碍现象、雷电现象和其他现象等,这些现象都是在一定的天气条件下产生的。以下为一列
  • GHS危险说明危险说明是全球化学品统一分类和标签制度(GHS)的一部分。它们旨在形成一套关于化学物质和混合物危害的标准化短语,可以翻译成不同的语言。 因此,它们与众所周知的R-短语具有相同
  • 圣母教堂 (德累斯顿)德累斯顿圣母教堂(Dresdner Frauenkirche)是德国萨克森州首府德累斯顿的一座路德会教堂。该处原址早期的教堂建筑是罗马天主教教堂,直到宗教改革期间被改为新教徒教堂,并在18世
  • 阿尔瓦·默达尔阿尔瓦·米达尔(瑞典语:Alva Myrdal,1902年1月31日-1986年2月1日),瑞典社会学家和政治家。她是瑞典社会民主工人党的资深党员,从1950年到1955年,她是第一位女性在联合国教科文组织其
  • 火绒草属火绒草属(学名:)属于菊科,共包含30多种,分布于欧洲与亚洲,包含欧洲著名的高山火绒草(,又称欧洲薄雪草或雪绒花)、礼文薄雪草(,分布日本、韩国与东亚)和玉山薄雪草(,台湾特有种)等。其学名来
  • 土蜗属见内文土蜗属(学名:)为一种会呼吸空气的淡水螺物种,属于椎实螺科的有肺类腹足纲软体动物。本属最广为人知的物种为截口土蜗()。本属物种已知从侏罗纪就已出现,到现在仍有现生种本属