0

我正在学习 read_lock 和 write_lock。

看来我可以使用 spin_lock 而不是读写锁。

所以我想知道使用读写锁有什么好处

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

4

2 回答 2

1

简短的谷歌搜索打开了这一段:

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

(来源:链接

所以基本上,使用 read_lock/write_lock 比普通的自旋锁给你更多的权力来拒绝/允许不同的锁用户,这取决于他们的需要,就像上面的例子一样。

于 2015-08-19T14:09:21.233 回答
0

读写锁在架构明确划分为读写器,读取次数更多的场景下更有用。也就是说,读写锁允许多个读者在同一个临界区。然而,在具有更多读取的情况下,普通的自旋锁无法以并行处理的形式提供这种优势。

于 2015-09-26T11:26:10.260 回答