我正在学习read_lock和write_lock。
似乎我可以使用spin_lock而不是读写锁。
所以我想知道使用读写锁
有什么好处当我使用read_lock和write_lock时,除了使用spin_lock有什么好处?
答案 0 :(得分:1)
有时,锁定用法可以明确划分为读者和作者。例如,考虑更新和搜索的列表。更新列表(写入)时,重要的是没有其他执行线程同时写入或读取列表。写作要求相互排斥。另一方面,当搜索列表(读取)时,重要的是没有其他内容写入列表。只要没有编写者,多个并发读者就是安全的。任务列表的访问模式(在第3章“流程管理”中讨论)符合此描述。毫不奇怪,任务列表受到读写器旋转锁的保护。
(来源:link)
所以基本上,使用read_lock / write_lock比普通的自旋锁提供更多的功能来拒绝/允许不同的锁定用户,具体取决于他们的需求,如上例所示。
答案 1 :(得分:0)
读写锁在架构明确分为读写器的情况下更有用,读取次数更多。也就是说,读写锁允许多个读取器处于相同的关键区域。然而,在具有更多读取的场景中,正常的自旋锁无法以并行处理的形式提供此优势。