gcc:将__sync迁移到__atomic

时间:2014-05-25 08:43:08

标签: multithreading gcc atomic

我正在使用__sync_xxx函数to implement lock-free queue

但是,我注意到它们是遗留的,并且有__atomic functions,它们是在GCC 4.8中引入的。

我读了the page,注意到了区别:__atomic需要“内存模型”。

  

__ ATOMIC_RELAXED没有障碍或同步。

     

__ ATOMIC_CONSUME仅对屏障和与另一个线程同步的数据依赖性。

     

__ ATOMIC_ACQUIRE阻止代码升级并与另一个线程的释放(或更强)语义存储同步。

     

__ ATOMIC_RELEASE阻止代码下沉并与另一个线程的获取(或更强)语义负载同步。

     

__ ATOMIC_ACQ_REL双向完全屏障并与另一个线程中的获取加载和释放存储同步。

     

__ ATOMIC_SEQ_CST双向完全屏障并与所有线程中的获取加载和释放存储同步。

但我无法理解是什么..你能解释一下,用实际例子吗?

0 个答案:

没有答案