读写锁

✍ dations ◷ 2025-11-28 05:33:51 #并发控制

读写锁是计算机程序的并发控制的一种同步机制,也称“共享-互斥锁”、多读者-单写者锁。多读者锁,,“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。

相关

  • 美国政府议长:南希·裴洛西(民主党) 多数党领袖(英语:Party leaders of the United States House of Representatives):斯坦利·霍耶(民主党) 少数党领袖(英语:Party leaders of the United Sta
  • 经济局经济局(葡萄牙语:Direcção dos Serviços de Economia,葡文缩写:DSE)是澳门特别行政区的经济部门,负责协助制订和执行经济活动范畴、知识产权范畴以及其他法律规定属其范畴的经
  • 马穆朱马穆朱(Mamuju)是印度尼西亚西苏拉威西省的一个城镇,也是该省的首府,马穆朱也是马穆朱县的县治所在。周围的人们到这里来接受教育,但如果要深造,必须前往望加锡。当地农业主要生产
  • 衡阳保卫战中华民国大日本帝国日方资料: 19,380人伤亡衡阳保卫战是发生在1944年6月22日到1944年8月8日之间中国抗日战争后期最惨烈的一场城市争夺战。衡阳保卫战是中国抗战史上最成功的
  • 海拉尔区海拉尔(蒙古语:.mw-parser-output .font-mong{font-family:"Menk Hawang Tig","Menk Qagan Tig","Menk Garqag Tig","Menk Har_a Tig","Menk Scnin Tig","Oyun Gurban Ulus Ti
  • 大宇K3轻机枪K3轻机枪是一挺由韩国国防发展局和大宇精密工业所研制,从大宇精密工业、S&T大宇集团,到目前的S&T Motiv所生产的轻机枪,为韩国继K1A卡宾枪和K2突击步枪以后开发的第三种当地枪
  • 1985年7月逝世人物列表1985年7月逝世人物列表,是用于汇总1985年7月期间逝世人物的列表。
  • 镰田弥彦镰田弥彦(1877年4月1日-1966年6月15日),为日本鹿儿岛县出身的陆军军人。
  • 官方美国PlayStation杂志《官方美国PlayStation杂志》(,常略称)是已休刊的电子游戏杂志月刊,原由Ziff Davis Media出版。其姊妹刊为《电子游戏月刊》。杂志只涉及PlayStation硬件、软件与文化,内容涵盖Pl
  • 安全转矩关闭安全转矩关闭(Safe Torque Off)简称STO,是工业设备中的安全机能,此机能有效时,设备不输出转矩。在EN IEC 61800-5-2: 2007《可调速电机驱动系统,Part 5-2:安全需求-机能》中也有提