admin管理员组

文章数量:1530061

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);
<

本文标签: 区域临界多线程实例关键