C++20 的强发生于之前关系:解开内存模型的谜团
2025-09-01
本文深入探讨了 C++20 中新增的“强发生于之前”关系,它解决了 C++ 内存模型中一个棘手的问题。作者通过一个简单的多线程程序示例,逐步解释了修改顺序、一致性排序以及“强发生于之前”关系如何约束并发执行的顺序。文章还分析了 Power 架构下允许某些看似违反 C++ 内存模型的执行的原因,并解释了“强发生于之前”关系如何修复这些不一致性,最终保证了所有 `memory_order::seq_cst` 操作的单一全序性。
开发