互斥锁的缺点

互斥锁有一些缺点:例如,如果忘记对互斥锁解除锁定,会怎么样呢?如果是这样,则试图锁定已经被锁定的互斥锁的任何进程只能永无止境地等到。这些线程就成为僵死(zombie thread),这是一个技术术语,指虽然存在但不能干任何事情的线程。显而易见,我们并不希望这种事情发生。

互斥锁还有另外一个问题,看看在下面的情况下会怎么样?
如果两线程依赖于同一个对象(比方说游戏玩家的状态这一对象,每帧都要访问此状态,在一个普通的游戏中访问频率大约是每秒30~60次)。与此同时,另一个线程需要对此状态做许多处理(如果程序中此函数的效率不高,处理过程最多需要花30秒时间,假定它随时可以锁定互斥锁,即使他不使用锁定的对象也如此)。第一个线程需要很多更新信息,但实质上它中止了很长时间,因为它要等到第二个线程完成,这样游戏看起来就会滞后。

转载于:https://www.cnblogs.com/burandanxin/archive/2008/07/18/1246378.html

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值