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

线程问题,为什么没有运行下去,锁的问题???

线程问题,为什么没有运行下去,锁的问题???

翻翻过去那场雪 2018-07-15 11:16:18
为什么运行成这样,就不向下运行了
查看完整描述

3 回答

?
慕容森

TA贡献1853条经验 获得超18个赞

https://img1.sycdn.imooc.com//5b4b15b90001437c02660146.jpg

在这个地方一直在等待中,没有被其它线程启动

查看完整回答
反对 回复 2018-07-15
?
MM们

TA贡献1886条经验 获得超2个赞

多个线程存在竞态条件下,当第一个线程运行了"生产者",随后你用flag来标识,但是并不是按照你想的那种顺序来去消费的,造成flag=false,进不去"消费者",然而下一个循环运行时发现flag=false,就会调用.wait()方法,在当前调用中是不会主动再去调.notify()方法的,导致你这"生产者"也只能调用一次后面就继续等待了,这样就产生这出现一个"生产了"的结果...

查看完整回答
反对 回复 2018-07-15
?
慕森王

TA贡献1777条经验 获得超3个赞

mian 方法启动使用的是同一个move对象. 及两个线程使用的是同一个锁。

每次只会有一个线程在执行方法. 

所以按照截图代码应该不会存在楼主描述的问题才对。。


查看完整回答
反对 回复 2018-07-15
  • 3 回答
  • 0 关注
  • 666 浏览

添加回答

举报

0/150
提交
取消
意见反馈 帮助中心 APP下载
官方微信