码迷,mamicode.com
首页 > 编程语言 > 详细

多线程相关------临界区CriticalSection

时间:2016-05-26 14:46:57      阅读:169      评论:0      收藏:0      [点我收藏+]

标签:

多线程一直是短板,整理相关知识方便查询

临界区(Critical Section)

临界区是一段供线程独占式访问的代码.在任意时刻,若有一个线程正在访问该代码段,如果其他所有试图访问的线程都将被挂起,直到访问的线程离开该代码段才可进入,保证线程安全. 适用于控制数据访问. 因其线程所有权其可以用于线程间互斥,而不能用于同步.

相关函数

InitializeCriticalSection初始化临界区对象

void WINAPI InitializeCriticalSection(
  _Out_ LPCRITICAL_SECTION lpCriticalSection
);

EnterCriticalSection等待临界区对象所有权

void WINAPI EnterCriticalSection(
  _Inout_ LPCRITICAL_SECTION lpCriticalSection
);

 

LeaveCriticalSection释放临界区对象所有权

void WINAPI LeaveCriticalSection(
  _Inout_ LPCRITICAL_SECTION lpCriticalSection
);

注意:EnterCriticalSection执行后,无论如何,必须保证与之匹配的LeaveCriticalSection能够执行,否则临界区保护的共享资源将永远不会被释放.

DeleteCriticalSection销毁临界区对象

void WINAPI DeleteCriticalSection(
  _Inout_ LPCRITICAL_SECTION lpCriticalSection
); 

多线程相关------临界区CriticalSection

标签:

原文地址:http://www.cnblogs.com/RoamSpace/p/5522649.html

(0)
(0)
   
举报
评论 一句话评论(0
登录后才能评论!
© 2014 mamicode.com 版权所有  联系我们:gaon5@hotmail.com
迷上了代码!