CSingleLock http://bbs.csdn.net/topics/310164806
2015-12-19 16:10
465 查看
CSingleLock可以作为data member使用,但这样做会有性能上的损失。
CSingleLock是为函数使用设计的,一般来讲,使用锁需要Lock,Unlock两步,而使用CSingleLock时,只需要一步即可,即在函数内部,声明一个CSingleLock,同时指定互斥对象的指针,在函数执行完毕的时候,会自动执行CSingleLock的析构函数,从而解锁。
CSingleLock是对锁的一个封装,它的基本原理如下:
CSingleLock(Lock* pLock)
{ pLock->Lock(); }
~CSingleLock()
{ pLock->UnLock(); }
所以说,若将CSingleLock作为data member使用,可以,但是有效率损失,还不如直接使用普通的锁。
使用CSingleLock有两大好处:
1.防止编程笔误,只有Lock,没有UnLock。
2.函数异常退出时,有可能流程走不到UnLock处,会导致资源锁死,而使用CSingleLock,则会在函数出栈时,自动调用CSingleLock析构函数。
使用CSingleLock有一大坏处,就是性能上总会有损失的,因为它多了一个构造与析构的过程,但对于普通应用来讲,优处大于缺点。
CSingleLock是为函数使用设计的,一般来讲,使用锁需要Lock,Unlock两步,而使用CSingleLock时,只需要一步即可,即在函数内部,声明一个CSingleLock,同时指定互斥对象的指针,在函数执行完毕的时候,会自动执行CSingleLock的析构函数,从而解锁。
CSingleLock是对锁的一个封装,它的基本原理如下:
CSingleLock(Lock* pLock)
{ pLock->Lock(); }
~CSingleLock()
{ pLock->UnLock(); }
所以说,若将CSingleLock作为data member使用,可以,但是有效率损失,还不如直接使用普通的锁。
使用CSingleLock有两大好处:
1.防止编程笔误,只有Lock,没有UnLock。
2.函数异常退出时,有可能流程走不到UnLock处,会导致资源锁死,而使用CSingleLock,则会在函数出栈时,自动调用CSingleLock析构函数。
使用CSingleLock有一大坏处,就是性能上总会有损失的,因为它多了一个构造与析构的过程,但对于普通应用来讲,优处大于缺点。
相关文章推荐
- android网络编程之HttpUrlConnection的讲解--POST请求
- BZOJ1146: [CTSC2008]网络管理Network
- Windows MFC的同步类 http://blog.sina.com.cn/s/blog_627ebfc30100iman.html
- android网络编程之HttpUrlConnection的讲解--GET请求
- http://www.cnblogs.com/yanhan/archive/2013/01/26/2877889.html
- 黑马程序员——第十五篇:线程池、单例设计模式、图形化界面、网络编程
- 使用Jmeter进行http接口性能测试
- Android网络服务发现(NSD)协议的使用
- ubuntu14.04下unix网络编程 环境的配置
- 图解 TCP/IP 协议
- iOS开发网络篇—数据缓存
- HttpURLConnection用法
- apache httpd-2.4.18 安装教程
- Volley的网络请求有内存溢出现象学到的一点知识
- XenServer的网络堆栈Open vSwitch模式
- cocos2d-x 下载网络视频、音乐保存到沙盒
- Java网络聊天程序
- XenServer的网络堆栈模式Bridge
- SOM自组织映射网络 教程
- android网络开发之测试机连接到服务器上面