gpt4 book ai didi

linux-kernel - Read-Copy-Update 和 Reader-Writer-Lock 的区别?

转载 作者:行者123 更新时间:2023-12-04 00:43:31 24 4
gpt4 key购买 nike

从编程的角度来看,它们在我看来几乎相同。从我更新数据时读取的内容来看,RCU 需要维护一个旧副本,直到所有读取器都完成,这会产生很大的开销。

这是实现方面的唯一区别吗?

最佳答案

Read-Copy-Update (RCU):与读写锁不同,以下是我能想到的一些要点:

  • 分离更新和回收信息,读者和作者都可以完全避免锁定。
  • 从实现的角度来看,RCU 适用于动态分配的数据结构,例如链表,因为编写器不会就地修改数据,而是分配一个新元素,它使用更新的数据进行初始化。使用原子指针将旧元素替换为新元素,然后新读者将看到新更新的数据。缺点是老读者仍然会看到数据的旧副本。必须跟踪旧副本,并且读取器必须通知 RCU 基础结构读取已完成,以便可以回收旧数据。

  • 读-写-锁:这里一个写者阻止另一个读者或另一个写者获得锁,而它已经获得了锁。多个读者可以同时获取一个锁,前提是没有写者取得了锁。

    希望这可以帮助!

    关于linux-kernel - Read-Copy-Update 和 Reader-Writer-Lock 的区别?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/24598636/

    24 4 0
    Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
    广告合作:1813099741@qq.com 6ren.com