您的位置:首页 > 其它

线程同步之临界区域

2011-11-07 14:23 246 查看
临界区用来保护一段代码,它要求执行以前获得对共享数据的独占访问权,由于它不是内核对象,因此只能用于同步单个进程中的线程,并且一次只能允许一个线程取得对某个数据区的访问权。

下面是会用到的一些函数。

void InitializeCriticalSection(
LPCRITICAL_SECTION lpCriticalSection
);
//初始化临界区域[/code]

void EnterCriticalSection(
LPCRITICAL_SECTION lpCriticalSection
);

//进入临界区域[/code]

BOOL TryEnterCriticalSection(
LPCRITICAL_SECTION lpCriticalSection
);

//进入临界区域,区别在于从不挂起线程,立即返回。[/code]

void LeaveCriticalSection(
LPCRITICAL_SECTION lpCriticalSection
);

//离开临界区域[/code]

void DeleteCriticalSection(
LPCRITICAL_SECTION lpCriticalSection
);
//删除临界区域


临界区域非内核对象,因此会出现死锁的情况,并且只能用于同一进程的不同线程之间的同步,同一时刻只能有一个线程被唤醒,优点在于简单易用,速度快。
内容来自用户分享和网络整理,不保证内容的准确性,如有侵权内容,可联系管理员处理 点击这里给我发消息
标签: