读写锁

✍ dations ◷ 2025-04-03 17:02:43 #并发控制

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

相关

  • 旋转对称性在数学里,给予一个定义于内积空间的函数,假若对于任意旋转,函数的参数值可能会改变,但是函数的数值仍旧保持不变,则称此性质为旋转不变性(rotational invariance),或旋转对称性(rotat
  • 性行为性行为可能指:
  • 近代哲学近代哲学是在17世纪起源于西欧的一个哲学分支,且现在是普遍世界范围性的。它不是一个具体的主义或流派(所以它不应被与现代主义混淆)。
  • 日震学日震学(英语:Helioseismology)是研究波振荡,特别是声波压力,在太阳上的传播。不同于地球的地震波,太阳的波几乎没有剪力的成分 (S波)。太阳压力波被认为是接近太阳表面的对流层中
  • 苏珊·莎兰登苏珊·萨兰登(英语:Susan Sarandon,1946年10月4日-)为一位美国电影演员,1996年以《死囚上路》夺得奥斯卡最佳女主角奖。1968年毕业于美国天主教大学,获电视剧及英国文学双学士学位
  • span class=nowrapTlNOsub3/sub/span硝酸亚铊是一种无机化合物,化学式为TlNO3。存在α、β和γ三种结构。剧毒。它可由金属铊和13%硝酸在80 °C反应,溶液结晶后用乙醇洗涤并在50 °C干燥得到。
  • 福尔摩斯纪念馆福尔摩斯纪念馆(英语:Sherlock Holmes Museum)是一间收藏有关福尔摩斯物品的博物馆,位于英国伦敦贝克街221B,成立于1990年。整个纪念馆体现了浓郁的维多利亚时代风格。纪念馆按照
  • 美国航空母舰本列表收录了美国海军己退役或现役中的航空母舰,包括船级属于CV、CVA、CVB、CVL或CVN的全部舰只。编号在CVA-58之后的都属于超级航空母舰(排水量超过75,000吨),CVN-65和CVN-68以
  • 固定汇率制固定汇率制(又称钉住汇率制),是国家间货币采用固定汇率进行货币交换的制度,一国政府可通过行政方式限定其货币相对于另一货币的价值。该国政府依照一定重量的黄金,或者一定量的另
  • 阿伊莎·宾特·侯赛因公主努尔王后陛下阿莉亚公主殿下穆娜公主殿下穆罕默德王子殿下 塔吉德王妃殿下菲雅王妃殿下哈桑王子殿下 莎瓦王妃殿下巴丝玛公主殿下阿里王子殿下 莉玛王妃殿下亚森王子殿下 珊