首页 新闻 会员 周边 捐助

各路大神帮我看看java同步问题,为什么我这样写就锁不住了?

0
悬赏园豆:10 [已解决问题] 解决于 2016-10-13 00:56

各路大神帮我看看java同步问题,为什么我这样写就锁不住了?

梦再笑的主页 梦再笑 | 初学一级 | 园豆:55
提问于:2016-10-12 12:23
< >
分享
最佳答案
1

Thff中的那个同步方法仅在相同实例下有效,你第一种写法在执行时会有两个Thff实例,如果希望在这种场景下也能实现同步执行,加个静态object字段,然后在ni方法中做lock。

收获园豆:10
Daniel Cai | 专家六级 |园豆:10424 | 2016-10-12 14:20

从哪里看到是用了两个实例的?劳烦大神指点迷津!谢谢了!

梦再笑 | 园豆:55 (初学一级) | 2016-10-12 14:41

@梦再笑: 上面那个RN的run实现中你是不是new了Thff,在你main方法中两个thread跑的时候最终到run这里不就是new了两次Thff么?

下面那个Rn的写法,Thff变成了字段,在main方法中你RN只实例化一次,所以这里Thff就只有一个实例。

Daniel Cai | 园豆:10424 (专家六级) | 2016-10-12 15:58

@Daniel Cai: 大神就是大神,谢谢了哈。原来是方法再次调用出了问题,好隐蔽啊!!

梦再笑 | 园豆:55 (初学一级) | 2016-10-13 00:58
清除回答草稿
   您需要登录以后才能回答,未注册用户请先注册