[New - Windows NT]
InterlockedCompareExchange函数将根据比较结果对【目的地】和【Comperand】参数中指定的值进行原子比较,并交换值。该函数可防止多个线程同时使用相同的变量。
PVOID InterlockedCompareExchange(
PVOID 【*目的地】, | //指向目标指针的指针 |
PVOID 【交换】, | //交换价值 |
PVOID 【Comperand】 | //要比较的值 |
); |
参数
【目的地】
指定目标值的地址。这是一个32位值。标志被忽略。
【交换】
指定交换值。这是一个32位值。标志被忽略。
【Comperand】
指定与【目的地】进行比较的值。这是一个32位值。标志被忽略。
返回值
返回值是目的地的初始值。
备注
功能InterlockedDecrement,InterlockedDecrement,InterlockedExchange,InterlockedExchangeAdd和InterlockedIncrement提供了一种简单的机制,用于同步对多个线程共享的变量的访问。如果变量在共享内存中,不同进程的线程可以使用这种机制。
InterlockedCompareExchange函数执行【目的地】值与【Comperand】值的原子比较。如果【目的地】值等于【Comperand】值,则【交换】值存储在【目的地】指定的地址中。否则,不执行任何操作。
InterlockedCompareExchange的变量必须在32位边界上对齐;否则,这个功能将在多处理器【x】 86系统上失败。
也可以看看
InterlockedDecrement,InterlockedExchange,InterlockedExchangeAdd,InterlockedIncrement