CSingleLock http://bbs.csdn.net/topics/310164806

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有一大坏处,就是性能上总会有损失的,因为它多了一个构造与析构的过程,但对于普通应用来讲,优处大于缺点。
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值