为了账号安全,请及时绑定邮箱和手机立即绑定

EnergySystem 里面的lockObj 换成energyBoxes

把lockObj换成energyBoxes应该也是可以的吧,加锁的时候只要锁住被操作的共享资源,也就是EnergySystem 
里面的全局变量energyBoxes也可以吧,比如EnergySystem  里面有两个类似energyBoxes的共享资源---->x,有其他的方法操作另外的共享资源x,如果只是lockObj加锁,但是不同方法操作的是不同的资源这样会不会效率特别低呢?因为两个资源之间根本没有关系,但是锁却是同一个--lockObj,假设我们锁在相应的共享资源也就是energyBoxes和另外一个共享资源x上,那么线程并发操作两个资源时之间没有干扰。这样会不会更好点一点?还是说需要再多创建一个针对共享资源X类似lockObj的锁? 谢谢授课老师,请您百忙之中抽出一点时间

正在回答

4 回答

首先从语法上,lockObj换成energyBoxes是可以的,不过易读性是否降低你要考虑了。第二点,效率要让位于安全。如果多个资源是无关的,自然可以不同的锁来互斥(那为什么要放在同一个类里面呢?恐怕要反思设计了),如果资源对线程的访问有严格的互斥约束,那么就不能有多个锁对象。

0 回复 有任何疑惑可以回复我~

这里真的不错,学的很多

0 回复 有任何疑惑可以回复我~

学习了很多

0 回复 有任何疑惑可以回复我~

举报

0/150
提交
取消

EnergySystem 里面的lockObj 换成energyBoxes

我要回答 关注问题
意见反馈 帮助中心 APP下载
官方微信