我在阅读与volatile关键字相关的问题的答案:
https://dev59.com/5HE95IYBdhLWcg3wDpYG#2485177
这个人说:解决防止重新排序的方法是使用内存屏障,它向编译器和CPU指示不能在此点之间重新排序任何内存访问。在我们的易失变量访问周围放置这样的屏障确保即使非易失性访问也不会在易失性访问之间重新排序,从而允许我们编写线程安全的代码。
然而,内存屏障还确保在达到屏障时执行所有待处理的读/写操作,因此它本身有效地为我们提供了所需的一切,使易失性变量变得不必要。我们可以完全删除易失性限定符。
那么,在C++中如何实现这个“内存屏障”呢?
编辑:
有人能给一个简单的代码示例吗?