read_lock和write_lock的优点

时间:2015-08-19 13:29:24

标签: linux synchronization spinlock readwritelock

我正在学习read_lock和write_lock。

似乎我可以使用spin_lock而不是读写锁。

所以我想知道使用读写锁

有什么好处

当我使用read_lock和write_lock时,除了使用spin_lock有什么好处?

2 个答案:

答案 0 :(得分:1)

短暂的谷歌搜索转向了这一段:

  

有时,锁定用法可以明确划分为读者和作者。例如,考虑更新和搜索的列表。更新列表(写入)时,重要的是没有其他执行线程同时写入或读取列表。写作要求相互排斥。另一方面,当搜索列表(读取)时,重要的是没有其他内容写入列表。只要没有编写者,多个并发读者就是安全的。任务列表的访问模式(在第3章“流程管理”中讨论)符合此描述。毫不奇怪,任务列表受到读写器旋转锁的保护。

(来源:link

所以基本上,使用read_lock / write_lock比普通的自旋锁提供更多的功能来拒绝/允许不同的锁定用户,具体取决于他们的需求,如上例所示。

答案 1 :(得分:0)

读写锁在架构明确分为读写器的情况下更有用,读取次数更多。也就是说,读写锁允许多个读取器处于相同的关键区域。然而,在具有更多读取的场景中,正常的自旋锁无法以并行处理的形式提供此优势。