[VC]InterlockedIncrement、InterlockedExchange、InterlockedExchangePointer之间的区别

四者都是windows平台的原子操作,区别如下:

InterlockedIncrement:对一个long类型变量累加,每次都是增加的值为1。与之对应的累减操作接口是InterlockedDecrement。

InterlockedExchangeAdd:对一个long类型变量进行加法操作,加数可以是任意值。

InterlockedExchange:将一个long类型的变量值修改为另一个指定的long值。

InterlockedExchangePointer:将一个指针类型的变量(void*)修改为另一个指定的void*。

MSDN官方文档

InterlockedIncrement

https://msdn.microsoft.com/en-us/library/windows/hardware/ff547910(v=vs.85).aspx

InterlockedExchangeAdd

https://msdn.microsoft.com/en-us/library/windows/hardware/ff547903(v=vs.85).aspx

InterlockedExchange

https://msdn.microsoft.com/en-us/library/windows/hardware/ff547892(v=vs.85).aspx

InterlockedExchangePointer

https://msdn.microsoft.com/en-us/library/windows/hardware/ff547904(v=vs.85).aspx

猜你喜欢

转载自aigo.iteye.com/blog/2291329