2010-07-01 5 views

답변

2

필요한 컴파일러 호환성에 따라 다릅니다.

두 플랫폼 모두에서 GCC를 사용하는 경우 GCC의 원자 기본 요소는 OS 플랫폼이 아닌 하드웨어 아키텍처에 연결되므로 사용할 수 있습니다.

그렇지 않으면 PeterK가 제안한대로 Boost를 살펴보십시오. Boost.Atomic 후보 라이브러리가 있습니다. 나는 통합에 대한 지위가 무엇인지 모른다.

+0

지금 __sync_val_compare_and_swap을 사용하고 있습니다. 필자는이 비교적 일반적인 기능을 위해 널리 사용되는 표준 라이브러리가 있다고 가정했습니다. –

1

boost을 사용해보세요. 그것은 원자 적 연산에 대한 많은 지원을 제공합니다.

+0

아마 내 자신의 실명을 알았지 만 64 비트 데이터 유형에서 작동하는 CAS 작업을 지원할 수 없었습니다. 무슨 말인지 보여 주실 수 있나요? –

+1

@peter : 부스트는 인종에 대한 적절한지지가 부족합니다. 프로덕션 환경에서 Boost를 사용하기 전에 코드 감사를 강력하게 권장합니다. 당신이 찾은 것에 놀랄 것입니다. – jww

1

부스트의 대안은 TBB (스레딩 구성 요소)입니다. 부스트와 같은 대규모 라이브러리는 아니며 병렬 프로그래밍에 중점을 둡니다.