版权声明:本文为博主原创文章,未经博主允许不得转载。 https://blog.csdn.net/haimianjie2012/article/details/86986314
volatile关键字
多个线程对同一个变量进行读写操作时,需要原子操作,保证数据的正确性。
常用的原子操作函数包括:
1.增减操作
返回变量执行增减操作之后的值
WINBASEAPI
LONG
WINAPI
InterlockedIncrement (
__inout LONG volatile *lpAddend
);
WINBASEAPI
LONG
WINAPI
InterlockedDecrement (
__inout LONG volatile *lpAddend
);
返回运算后的值,注意!加个负数就是减。
WINBASEAPI
LONG
WINAPI
InterlockedExchangeAdd (
__inout LONG volatile *Addend,
__in LONG Value
);
2.赋值操作
WINBASEAPI
LONG
WINAPI
InterlockedExchange (
__inout LONG volatile *Target,
__in LONG Value
);
Value就是新值,函数会返回原先的值。