线程之间的内存栅栏/屏障如何与其他线程中的栅栏/屏障交互



不同线程中内存栅栏的交互是什么?

更具体地说,线程中的内存围栏是否只阻止线程内指令的重新排序,或者线程之间是否存在同步,就像一个线程等待直到另一个线程中达到相应的围栏一样?如果多个线程具有相同类型的围栏,而多个线程则具有成对的围栏,会发生什么情况?什么类型的栅栏需要在丝线之间配对,它们是如何使用的?如果带有内存围栏的代码以单线程方式运行,会有什么影响?

内存屏障与barrier标签完全不同。

内存屏障只命令本地核心自己访问一致的共享内存,因为这就是恢复顺序一致性所需的全部内容。不存在与其他线程/核心的直接交互。

如果要在线程之间进行同步,请使用发布/获取顺序。https://preshing.com/20120913/acquire-and-release-semantics/

最新更新