c-在AIX环境中_lwsync和_sync_synchronize之间有什么区别



_lwsync似乎正在同步多个处理器和

_sync_synchronize是使用内存屏障在所有线程中进行同步。

但我想更具体地了解差异。

__lwsync:

lwsync屏障大致类似于同步,包括累积属性,但不包括订购存储/加载对,执行起来更便宜;保证MP+lwsyncs中的SC行为就足够了(MP每个线程中的lwsync(、WRC+lwsync+addr(WRC线程1上的lwsync和线程上的地址依赖关系2( ,和ISA2+lwsync+data+addr,而SB+lwsyncs和IRIW+lwsync仍然被允许。

__sync_synchronize:

此函数用于同步所有线程中的数据。调用此函数时会创建一个完整的内存屏障。它是全内存屏障的原子内置。不会在操作中向前或向后移动内存操作数。此外,将根据需要发出指令,以防止处理器在整个操作过程中推测负载,并在操作后对存储进行排队。

相关内容

  • 没有找到相关文章

最新更新