-
InterlockedExchange, InterlockedCompareExchange개발/C·C++ 2021. 6. 10. 18:34
Target이 역참조하는 값을 Value로 만들고 원래의 값을 반환합니다. 가능하면 컴파일러 내장함수를 이용해 구현됩니다 .이 함수는 멀티스레드가 공유하는 변수에 동기적으로 접근할 수 있는 방법을 제공합니다. 원자적으로 작동합니다. _InterlockedExchange 함수는 Win32 Window SDK InterlockedExchange 함수에 컴파일러 내장 지원을 제공합니다.
원자적으로 비교/변경 동작을 수행합니다. 포인터를 변경하고 싶다면 InterlockedCompareExchangePointer 함수를 사용합니다. 이 함수는 Destination과 Comarand를 비교합니다. Destination이 Comparand와 같다면 Exchange가 Destination에 저장됩니다. 반환 값은 Destination의 기존 값입니다. 이 함수의 매개변수는 32비트 경계에서 졍렬되어 있어야 합니다. 이 함수도 위의 함수처럼 멀티스레드가 공유하는 변수를 동기적으로 접근하게 해줍니다. 다른 interlocked 함수도 마찬가지입니다.
>> 출처
https://docs.microsoft.com/en-us/cpp/intrinsics/interlockedexchange-intrinsic-functionshttps://docs.microsoft.com/en-us/windows/win32/api/winnt/nf-winnt-interlockedexchange
https://docs.microsoft.com/en-us/windows/win32/api/winnt/nf-winnt-interlockedcompareexchange
'개발 > C·C++' 카테고리의 다른 글
[Priority queue] 간단한 참고 (0) 2021.07.03 Guaranteed Copy Elison (0) 2021.06.27 timeBeginPeriod function (0) 2021.06.10 WSASend function (0) 2021.06.06 IOCP(2) (0) 2021.06.04