Linux kernel 读拷贝更新和读写器锁定之间的区别?
从编程的角度来看,它们看起来非常相似。根据我在更新数据时读到的内容,RCU需要维护一个旧副本,直到所有读卡器都完成为止,这会产生很大的开销 这是实现的唯一区别吗?读取副本更新(RCU):与读写器锁定不同,我可以考虑以下几点:Linux kernel 读拷贝更新和读写器锁定之间的区别?,linux-kernel,locking,Linux Kernel,Locking,从编程的角度来看,它们看起来非常相似。根据我在更新数据时读到的内容,RCU需要维护一个旧副本,直到所有读卡器都完成为止,这会产生很大的开销 这是实现的唯一区别吗?读取副本更新(RCU):与读写器锁定不同,我可以考虑以下几点: 分离更新和回收信息,读写器都可以避免完全锁定 从实现的角度来看,RCU适用于动态分配的数据结构,如链表,因为编写器不会就地修改数据,而是分配一个新元素,并用更新的数据初始化该元素。使用原子指针将旧元素替换为新元素,然后新的读卡器将看到新更新的数据。缺点是旧的读取器仍然会看到