InterlockedExchange 함수(winnt.h)

32비트 변수를 지정된 값으로 원자성 연산으로 설정합니다.

포인터 변수에서 작동하려면 InterlockedExchangePointer 함수를 사용합니다.

16비트 변수에서 작동하려면 InterlockedExchange16 함수를 사용합니다.

64비트 변수에서 작동하려면 InterlockedExchange64 함수를 사용합니다.

구문

LONG InterlockedExchange(
  [in, out] LONG volatile *Target,
  [in]      LONG          Value
);

매개 변수

[in, out] Target

교환할 값에 대한 포인터입니다. 함수는 이 변수를 Value로 설정하고 이전 값을 반환합니다.

[in] Value

Target이 가리키는 값과 교환할 값입니다.

반환 값

함수는 Target 매개 변수의 초기 값을 반환합니다.

설명

상호 잠긴 함수는 여러 스레드에서 공유하는 변수에 대한 액세스를 동기화하기 위한 간단한 메커니즘을 제공합니다. 이 함수는 다른 상호 잠긴 함수에 대한 호출과 관련하여 원자성입니다.

이 함수는 가능한 경우 컴파일러 내장 함수를 사용하여 구현됩니다. 자세한 내용은 WinBase.h 헤더 파일 및 _InterlockedExchange 참조하세요.

이 함수는 메모리 작업이 순서대로 완료되도록 전체 메모리 장벽(또는 펜스)을 생성합니다.

Itanium 기반 시스템: 성능에 중요한 애플리케이션의 경우 InterlockedExchangeAcquire 를 대신 사용합니다.

참고 이 함수는 Windows RT 기반 시스템에서 지원됩니다.
 

요구 사항

요구 사항
지원되는 최소 클라이언트 Windows XP [데스크톱 앱 | UWP 앱]
지원되는 최소 서버 Windows Server 2003 [데스크톱 앱 | UWP 앱]
대상 플랫폼 Windows
헤더 winnt.h(Windows.h 포함)
라이브러리 Kernel32.lib
DLL Kernel32.dll

참고 항목

인터로 잠긴 변수 액세스

InterlockedCompareExchange

InterlockedExchange

InterlockedExchange16

InterlockedExchange16Acquire

InterlockedExchange16NoFence

InterlockedExchange64

InterlockedExchange8

InterlockedExchangeAcquire

InterlockedExchangeAcquire64

InterlockedExchangeAdd

InterlockedExchangeAdd64

InterlockedExchangeAddAcquire

InterlockedExchangeAddAcquire64

InterlockedExchangeAddNoFence

InterlockedExchangeAddNoFence64

InterlockedExchangeAddRelease

InterlockedExchangeAddRelease64

InterlockedExchangeNoFence

InterlockedExchangeNoFence64

InterlockedExchangePointer

InterlockedExchangePointerAcquire

InterlockedExchangePointerNoFence

InterlockedExchangeSubtract

동기화 함수