read_lock和write_lock的优点



我正在学习read_lock和write_lock。

看来我可以用spin_lock来代替读写锁。

所以我想知道使用读写锁是否有任何优势

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

用google搜索这段文字

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

(来源:链接)

所以基本上,使用read_lock/write_lock比普通的自旋锁更强大,可以根据不同用户的需要拒绝/允许不同的锁用户,就像上面的例子一样。

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

相关内容

  • 没有找到相关文章

最新更新