【发布时间】:2019-05-24 11:48:30
【问题描述】:
我正在从事一个处理大量原子操作的项目。直到现在我还不知道atomic_load(),只是依靠赋值运算符来获取原子类型的值,除了这么多的测试,我还没有看到错误。这些原子类型由多个进程和线程以及atomic_compare_exchange_strong_explicit() 更改,因此它们每次都需要一个旧值,这就是我一直在做oldValue = <Atomic_ type_variable> 的地方,它总是可以正常工作。
这只是偶然吗?我应该更喜欢使用 atomic_load() 吗?
【问题讨论】:
-
您需要什么订单?
-
我对内存排序不是很熟悉(真的很混乱)。也许那在 atomic_load_explicit() 中。我的问题只是关于 atomic_load(),有人给出了答案。
-
你很困惑吗?所以他的每个人,我相信。研究人员认为,宽松排序的规范存在严重缺陷!
标签: c11 rvalue stdatomic lvalue-to-rvalue