2010-11-26 4 views
0

Interlocked winapi 함수를 사용할 때의 장점과 단점은 Win32 플랫폼에서 원자 적 연산을 제공하는 라이브러리가 아닌 무엇입니까?Interlocked ops vs XXX Win32에서 atomic

이식성은 문제가되지 않습니다.

답변

3

이식성이 문제가 아니라면 기본적으로이 권한을 얻기 위해 더 신뢰하는 사람을 결정할 수 있습니다. 라이브러리는 일반적으로 이식성을 제공하도록 설계되었습니다. 그렇지 않으면 15 년 넘게 전투 강화 된 OS 구현과 경쟁하기가 힘듭니다.

this thread을 확인하여 명백한 구현이 실제로 최고가 아닌지 확인하십시오.

+0

예를 들어 인텔의 TBB :: atomic 이 있습니다. Microsoft는 OS를 제공하지만 Intel은 프로세서를 생산합니다. 누구를 더 신뢰하겠습니까? –

+1

Hehe, Intel 프로세서가 AMD 프로세서에서 제대로 작동한다고 믿고 있습니까? –

+0

필자의 경우 사실 인 코드가 항상 인텔 프로세서에서 실행된다고 가정합시다. –

1

잠긴 작업에 대한 CPU 지원이없는 경우에도 Interlocked winapi 기능은 이전 프로세서에서 작동합니다. 386 및 아마 486, 아직까지는 문제가되지 않습니다. 여전히 Win9x 및 이전 NT를 지원하지 않는 한.

+0

그들은 다르게 * 그 CPU에 작동합니다. (그들은 다른 인터 로킹 된 연산과 관련하여 원자 적입니다.) – jalf

0

문제의 특정 원자 라이브러리에 따라 달라질 수 있습니다.

특정 백엔드가있는 좋은 라이브러리는 x86 잠금 명령어를 실행하고 작업을 수행하기 위해 몇 가지 ASM 명령어의 동일한 구현으로 끝날 수 있습니다. 라이브러리 자체가 이식성이 있다고 가정하면 이후 코드를 이식성있게 만듭니다.

순진 원자 구현 일반 변수를 보호하기 위해 뮤텍스를 사용하는 것보다 무거운 작업을 수행하십시오. 나는 그 일에 대해서 모른다. 단지 논쟁의 요지를 만든다.

이와 같이, 귀하의 명시된 비 휴대 성 요구 사항을 고려할 때 Win32 기능을 사용하는 것이 좋을 것입니다. 또는 원자 버전으로 진행하지만 실제 구현을 살펴볼 수도 있습니다.