CRITICAL_SECTION
多线程用来确保同一时刻只有一个线程操作被保护的数据
对于临界资源,必须互斥的进行访问,CRITICAL_SECTION提供对代码的临界访问,同意时间只有一个线程对资源访问。
CRITICAL_SECTION CS //定义临界区
InitializeCriticalSection(&CS) //初始化
EnterCriticalSection(&CS) //进入临界区
LeaveCriticalSection(&CS) //离开临界区
DeleteCriticalSection(&CS) //删除临界区
例子:
Void threadOne()
{
EnterCriticalSection(&CS) ;
A= 10;
LeaveCriticalSection(&CS) ;
}
Void threadTwo()
{
EnterCriticalSection(&CS) ;
A= 20;
LeaveCriticalSection(&CS) ;
}