C++의 원자 비교 및 스왑 연산에 사용할 수있는 최상의 크로스 플랫폼 라이브러리는 무엇입니까?라이브러리 비교 및 교환?
... 또는 Linux 및 Windows의 경우 최소한 amd64의 경우?
C++의 원자 비교 및 스왑 연산에 사용할 수있는 최상의 크로스 플랫폼 라이브러리는 무엇입니까?라이브러리 비교 및 교환?
... 또는 Linux 및 Windows의 경우 최소한 amd64의 경우?
필요한 컴파일러 호환성에 따라 다릅니다.
두 플랫폼 모두에서 GCC를 사용하는 경우 GCC의 원자 기본 요소는 OS 플랫폼이 아닌 하드웨어 아키텍처에 연결되므로 사용할 수 있습니다.
그렇지 않으면 PeterK가 제안한대로 Boost를 살펴보십시오. Boost.Atomic 후보 라이브러리가 있습니다. 나는 통합에 대한 지위가 무엇인지 모른다.
부스트의 대안은 TBB (스레딩 구성 요소)입니다. 부스트와 같은 대규모 라이브러리는 아니며 병렬 프로그래밍에 중점을 둡니다.
C++ 0X가 [마지막으로] 문제를 해결합니다. GCC의 경우 http://gcc.gnu.org/wiki/Atomic/GCCMM/ExecutiveSummary 및 http://gcc.gnu.org/wiki/Atomic/GCCMM/DataRaces을 참조하십시오.
지금 __sync_val_compare_and_swap을 사용하고 있습니다. 필자는이 비교적 일반적인 기능을 위해 널리 사용되는 표준 라이브러리가 있다고 가정했습니다. –