如何在Linux的多线程中同步

时间:2011-09-20 09:41:44

标签: linux

我有四个线程,我需要在这些线程之间转换数据,函数如下:

 theadFunc(){
    processing;
    __sync();
    processing; 
   }

linux中是否有任何同步函数可确保线程到达同一点。 在windows中,我使用原子添加和原子比较来实现__sync(),我没有在Linux中找到原子比较函数。

1 个答案:

答案 0 :(得分:4)

您可以使用GCC的Atomic builtins进行比较和交换,但您可能需要考虑使用pthreads屏障。有关详细信息,请参阅pthread_barrier_initpthread_barrier_wait的文档。您还可以阅读此pthreads primer以获取屏障使用的工作示例。