读写锁

✍ dations ◷ 2025-05-20 01:03:00 #并发控制

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

相关

  • 2013年中国东北雾霾事件2013年中国东北雾霾事件是指起始于2013年10月20日,也就是哈尔滨市的年度冬季燃煤取暖系统开启的第二天,以中国东北地区哈尔滨为中心,和吉林省、黑龙江省、辽宁省在内的地区发生
  • 总管总管,本意全面管理,在中国古代,总管是一种官职。后世又俗称家族雇佣的管理人,即管家。北周武成元年(559年)将地方军事长官都督改称总管。北周武帝以王谦为益州总管,隋朝和唐朝初年
  • 联合尼德兰主权公国联合尼德兰主权公国(荷兰语:),是一个在1813至1815年间存在的主权公国。该政权是打败拿破仑的领袖们重划欧洲势力范围时产生的过渡政权。1815年,随着列强举行维也纳会议确立欧洲政
  • 半闭后不圆唇元音表内成对的元音分别为不圆唇/圆唇。半闭后不圆唇元音(英语:close-mid back unrounded vowel、high-mid back unrounded vowel)是相应的半闭后圆唇元音/o/的扁唇音。发音同/o/但
  • 高山向导高山向导,又称登山向导都受过专门训练和丰富的经验。高山向导,确保登山客安全或滑雪团体安全。专业类导游的出现在19世纪中叶时,阿尔卑斯式攀登成为公认的一项运动。除了确保安
  • 3磅炮3磅炮可以是指:
  • 欧洲研究欧洲研究是关于欧洲一体化各个不同领域发展的学科。在世界范围内成为了一门新兴的人文科学。有一些相关的教育提供主要关于欧盟发展的过程。这些学科通常是交叉学科,即有政治
  • 2012年中国内地一周票房冠军以下列表为2012年中国内地一周内的电影票房冠军,列表将星期一到星期天视为一周。
  • 户冢纯贵户冢 纯贵(日语:戸塚 純貴/とづか じゅんき、1992年7月22日-)是日本岩手县盛冈市出生的男性演员,隶属于Box Corporation经纪公司。户冢在盛冈中央高等学校毕业。他在2010年举行的
  • 张晓爱张晓爱(1946年-),女,江西南丰人,中国传媒工作者,北京电视台原总编辑,中国电视艺术家协会副主席、顾问。