CCriticalSection临界区
来源:互联网 发布:caffe github issue499 编辑:程序博客网 时间:2024/05/21 09:07
转自:http://baike.baidu.com/view/2471016.htm
类CCriticalSection的对象表示一个“临界区”,它是一个用于同步的对象,同一时刻只允许一个线程存取资源或代码区。临界区在控制一次只有一个线程修改数据或其它的控制资源时非常有用。例如,在链表中增加一个结点就只允许一次一个线程进行。通过使用CCriticalSection对象来控制链表,就可以达到这个目的。
在运行性能比较重要而且资源不会跨进程使用时,建议采用临界区代替信号灯。有关在MFC中使用信号灯的详细信息,请参阅CMutex。使用CCriticalSection对象之前,需要构造它。在构造函数返回后,就可以使用临界区了。在使用完之后要调用UnLock函数。 存取由CCriticalSection控制的资源时,要在资源的存取函数中定义一个CSingleLock型的变量。然后调用加锁对象的Lock成员函数(如CSingleLock::Lock)。此时,调用的线程要么获得对资源的存取权,要么等待他人释放资源等待加锁,或者等待他人释放资源,但又因为超时而加锁失败。这样就保证了一次只有一个线程在存取临界资源。释放资源只需调用成员函数UnLock(例如CSingleLock:Unlock),或让锁对象在作用范围之外。 此外,可以单独地建立一个CCriticalSection对象,并在存取临界资源之前显式地存取它。这种方式有助于保持代码的清晰,但是更容易出错,因为程序员要记住在存取临界资源前加锁,存取之后开锁。 #include <afxmt.h>- CCriticalSection临界区
- CCriticalSection临界区的使用方法
- 线程同步 CCriticalSection(临界区类)
- 线程同步 CCriticalSection(临界区类)
- 每天学一点 -- CCriticalSection临界区
- 多线程编程5 线程同步_临界区(CCriticalSection)
- [MFC]同步对象——CCriticalSection临界区,CSemaphore信号量
- 【语言-C++】多线程通同步 临界区 CCriticalSection 与 CSingleLock
- 使用MFC的CCriticalSection类来实现操作临界区
- 临界段CCriticalSection的使用
- 临界段CCriticalSection的使用
- 临界段CCriticalSection的使用
- 临界段CCriticalSection的使用
- C++线程同步 CCRITICALSECTION(临界区类)附自己写的测试代码
- 临界段类(CCriticalSection)——MFC
- 临界段类(CCriticalSection)——MFC
- 临界段类(CCriticalSection)——MFC
- CCriticalSection
- javascript中获取日期格式
- Git错误non-fast-forward后的冲突解决
- YII实现文件上传下载
- 处理【从客户端中检测到有潜在危险的 Request.Form值】
- 关于DLL的函数
- CCriticalSection临界区
- 2012 Multi-University Training Contest 4
- 查看SQl执行计划
- lucene入门篇
- 单件模式
- Apache 输入过滤器(infilter)修改请求
- ILdasm 的使用
- Java断言——assert
- Android 的振动器