我看不出有任何理由为“本机”CPU 积分增加额外开销,但我可能错了,所以我想听听社区的意见
我真正的问题涉及某种相对罕见的变化但经常阅读的链表(类似于典型的 RCU 用例)。这个想法是为只读操作提供两种访问模式:如果结构现在正在改变(完全成熟的无锁算法),则使用第一种模式,第二种轻量级模式用于“平静”情况(使用非原子列表遍历)。对于第二种(轻量级)情况,我将使用带有 memory_order_relaxed 的原子负载,但如果它太昂贵,我需要做一些解决方法(缓存非原子变量中的原子值,或以某种方式模拟建议的 memory_order_nonatomic http ://www.open-std.org/jtc1/sc22/wg14/www/docs/n1446.htm等)
我知道答案取决于原子实现(和 CPU),但我希望实现应该合理:)