同步 msdn查Synchronization Functions
不同线程共享同一个资源,在线程切换过程中,会产生不可预料的结果
用户方式同步 3环态 速度快 但是不能跨线程使用
锁 API的命名方式: InterLockxxxxxx
互锁函数向总线发送一个硬件信号,防止另一个cpu访问同一个内存地址
//循环锁
//利用InterlockedExchange()实现上锁:
bool isEnter = true;
{
while(InterlockedExchange(&isEnter,FLASE) == FALSE)
{
Sleep(100);
}
//代码段......
//代码段......
//代码段......
InterlockedExchange(&isEnter,TRUE);
}
//临界区,关键代码段
//每次Enter 引用计数+1
InitializeCriticalSection(&cs);
EnterCriticalSection(&cs);
EnterCriticalSection(&cs);//可多次进入临界区
//关键代码段......
//关键代码段......
//关键代码段......
LeaveCriticalSection(&cs);
LeaveCriticalSection(&cs);