Critical Sections(关键区域、临界区域):
在windows多线程中遇到某一资源(内存)被多个线程同时操作的情况怎么办?
在Win32 程序中你可以为每一个需要保护的资源声明一个CRITICAL_SECTION 类型的变量。这个变量扮演红绿灯的角色,让同一时间内只有一个线程进criticalsection。
保护过程分为四步:
第一步:
声明一个CRITICAL_SECTION类型的变量
CRITICAL_SECTION cs;
第二步:
将CRITICAL_SECTION 的局部变量初始化,方法是调用
InitializeCriticalSection();
InitializeCriticalSection(&cs);
第三步:
当线程准备好要离开critical section时,它必须调用
LeaveCriticalSection();
LeaveCriticalSection(&cs);
第四步:
当你用毕critical section时,你必须调用**
DeleteCriticalSection(); 清除它
DeleteCriticalSection(&cs);
<