2
的多線程同步我有四個線程,我需要這些線程間的數據,功能類似如下翻譯:如何在Linux
theadFunc(){
processing;
__sync();
processing;
}
是否有同步功能在Linux上確保線程將到達同一點。 在Windows中,我使用原子添加和原子比較來實現__sync(),並且我沒有在Linux中找到原子比較函數。
的多線程同步我有四個線程,我需要這些線程間的數據,功能類似如下翻譯:如何在Linux
theadFunc(){
processing;
__sync();
processing;
}
是否有同步功能在Linux上確保線程將到達同一點。 在Windows中,我使用原子添加和原子比較來實現__sync(),並且我沒有在Linux中找到原子比較函數。
您可以使用GCC的Atomic builtins進行比較和交換,但您可能需要考慮使用pthreads barrier。有關更多信息,請參見pthread_barrier_init
和pthread_barrier_wait
的文檔。您也可以閱讀這個pthreads primer以獲得障礙物使用的一個工作示例。
感謝您的回答,以及如何實施屏障。 – Samuel
@Samuel:增加了更多關於回答障礙的信息 – Hasturkun