我学习read_lock和write_lock。
看来我可以用spin_lock代替读写锁.
所以我想知道使用读写锁有什么好处吗?
当我使用read_lock和write_lock时,比仅仅使用spin_lock有什么好处?
发布于 2015-08-19 14:09:21
简短的googling打开了这一段:
有时,锁的使用可以清楚地分为读者和作者。例如,考虑更新和搜索的列表。当列表被更新(写入)时,重要的是其他执行线程不能同时写入或从列表中读取。写作需要相互排斥。另一方面,在搜索列表(从列表中读取)时,只需要不向列表写入其他任何内容。只要没有作者,多个并发读取器是安全的。任务列表的访问模式(在第3章“流程管理”中讨论)符合这一描述。毫不奇怪,任务列表受到读写器自旋锁的保护。
(资料来源:链接)
因此,基本上,使用read_lock/write_lock为您提供了比常规自旋锁更大的能力来拒绝/允许不同的锁用户,这取决于他们的需求,如上面的示例所示。
发布于 2015-09-26 11:26:10
读写锁在体系结构明显分为读取器和写入器的情况下更有用,读写器的数量更多。也就是说,读写锁允许多个读取器位于同一关键区域.然而,在有更多读取的场景中,普通的自旋锁不能以并行处理的形式提供这种优势。
https://stackoverflow.com/questions/32096928
复制相似问题