windows多线程编程之原子操作

版权声明:本文为博主原创文章,未经博主允许不得转载。 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就是新值,函数会返回原先的值。

猜你喜欢

转载自blog.csdn.net/haimianjie2012/article/details/86986314