Operating system 可以在RCU锁中读取旧版本或新版本吗?

Operating system 可以在RCU锁中读取旧版本或新版本吗?,operating-system,synchronization,rcu,Operating System,Synchronization,Rcu,我有一个关于RCU锁的问题 据我所知,RCU允许一些读者(在宽限期之前开始,在宽限期结束)拥有旧版本或新版本 查看附加的图像 所以,在黄色部分之前开始并在黄色部分内结束的读取器可以读取更新(删除)值或旧值 然而,我的问题是,为什么读者可以有不确定的价值? 我认为所有的读者都应该有确定的价值,这意味着它不应该是旧价值或新价值 我错过什么了吗 谢谢。这就是RCU的工作原理,也是RCU和锁之间的主要区别 例如,使用RW锁,您可以确保在更新过程中,每个读卡器都会停止并等待更新完成。然后所有读卡器立即看

我有一个关于RCU锁的问题

据我所知,RCU允许一些读者(在宽限期之前开始,在宽限期结束)拥有旧版本或新版本

查看附加的图像

所以,在黄色部分之前开始并在黄色部分内结束的读取器可以读取更新(删除)值或旧值

然而,我的问题是,为什么读者可以有不确定的价值? 我认为所有的读者都应该有确定的价值,这意味着它不应该是旧价值或新价值

我错过什么了吗


谢谢。

这就是RCU的工作原理,也是RCU和锁之间的主要区别

例如,使用RW锁,您可以确保在更新过程中,每个读卡器都会停止并等待更新完成。然后所有读卡器立即看到更新的数据

根据设计,RCU允许您在更新之前或之后查看数据,但对于许多用例来说,它是可以的。RCU的主要优点是读者永远不会被阻止,而作者永远不会被阻止


当然,如果程序的逻辑要求工作线程之间有严格的数据一致性,那么RCU不是最佳选择。看看RW锁,然后…

这就是RCU的工作原理,这是RCU和锁之间的主要区别

例如,使用RW锁,您可以确保在更新过程中,每个读卡器都会停止并等待更新完成。然后所有读卡器立即看到更新的数据

根据设计,RCU允许您在更新之前或之后查看数据,但对于许多用例来说,它是可以的。RCU的主要优点是读者永远不会被阻止,而作者永远不会被阻止

当然,如果程序的逻辑要求工作线程之间有严格的数据一致性,那么RCU不是最佳选择。看看RW锁,然后