0、思考
如果需要以原子方式修改一个值。
1、相关api
InterlockedIncrement(相当于++)
InterlockedDecrement(相当于--)
InterlockedExchangeAdd(相当于+)
InterlockedExchangeAdd64
InterlockedExchange(相当于=)
InterlockedExchange64
InterlockedExchangePointer
InterlockedCompareExchange(相当于?:)
InterlockedCompareExchangePointer
InterlockedAnd(相当于&)
InterlockedOr(相当于|)
InterlockedXor(相当于~)**
InitializeSListHead(初始化单链表)
InterlockedFlushSList(清空单链表)
InterlockedPushEntrySList(插入)
InterlockedPopEntrySList(移除)
QueryDepthSList(查询)
2、写在前面
原子访问:一个线程在访问某个资源的同时能够确保没有其他线程会在同一时刻访问同一资源。
volatile:告诉编译器这个变量可能会被应用程序之外的其他东西修改;告诉编译器不要对这个变量进行任何形式的优化,而是始终从变量在内存中的位置读取。
所有使用旋转锁的线程都以相同的优先级运行。&