sfence
的documentation表示:
“序列化操作”是什么意思?
这是否意味着确保在sfence
之后继续执行指令之前,已完成在sfence
指令之前发出的所有存储到内存指令?
最佳答案
sfence
确保在程序顺序中的所有后续存储变为全局可见之前,程序顺序中的所有先前存储都变为全局可见。与您编写的内容相比,有两个区别。首先,sfence
不会序列化已发行的先前存储。它会序列化所有先前的存储,无论它们是否已发行。其次,它仅对以后的所有商店进行序列化;并非以后所有的说明。这就是sfence
上下文中的“序列化操作”的含义。
您仅引用了文档中的第一句话,但是每句话都很重要。