![]() |
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++的本质类似
所以
|
![]() |
user107586 · 如何处理等待句柄不会导致无限循环? 6 月前 |
![]() |
ron burgundy · 获取-释放语义是否跨线程传递?[副本] 6 月前 |
![]() |
BenjiFB · C#内存缓存:在一次操作中追加到列表? 6 月前 |
![]() |
András Takács · Python多线程问题 10 月前 |
|
András Takács · Python多线程错误 10 月前 |