|
1
1
障碍不会造成 其他 线程/核心等待。他们在当前线程中执行一些操作 屏障甚至不会让其他线程更快地看到您的加载/存储;CPU核心已经尽可能快地将存储缓冲区中的存储提交(失效)到L1d缓存。(在遵循了所有必要的MESI一致性规则之后,x86的强内存模型只允许存储按程序顺序提交,即使没有障碍)。 障碍不一定有序 ,他们命令 全球知名度
对于超线程,我认为这种暂停发生在每个逻辑线程上,而不是整个内核上。
但请注意
Does a memory barrier ensure that the cache coherence has been completed?
的实际用例
最近的另一个重要用例
相关: When should I use _mm_sfence _mm_lfence and _mm_mfence (用C++代替ASM编写时)。
请注意,C++的本质类似
所以
|
|
|
Bogey · C#共享内存-CPU缓存风险(非易失性读取)? 8 年前 |
|
|
filo · 如何在x86上使用gcc强制执行内存排序 8 年前 |
|
|
maxim1 · Java中的易失阵列、内存障碍和可见性 10 年前 |
|
paddy · 双原子自旋锁的最小限制存储器排序 10 年前 |