【发布时间】:2021-11-02 15:45:09
【问题描述】:
我正在阅读有关原子和内存命令的信息,我真的很困惑。
- 首先我想知道我们是否使用顺序一致作为我们的原子操作的内存顺序,之前和之后的任何语句都不能重新排序并且它们被执行
完全按照源代码顺序?
- 当我们说所有线程看到相同的操作顺序并且存在全局总顺序时,这是什么意思? (如果能举例说明就好了)
【问题讨论】:
-
第一个问题没看懂。 (2) 在 cpp 参考中,您可以举例说明缺少总排序的可能后果 - 当使用较少强制的内存操作时。如果没有全序,您将无法判断哪些事件以何种顺序发生。恕我直言,它并不是特别有用,还没有看到一个真实的用例。
标签: c++ multithreading atomic memory-barriers stdatomic