为什么运行成这样,就不向下运行了
3 回答
MM们
TA贡献1886条经验 获得超2个赞
多个线程存在竞态条件下,当第一个线程运行了"生产者",随后你用flag来标识,但是并不是按照你想的那种顺序来去消费的,造成flag=false,进不去"消费者",然而下一个循环运行时发现flag=false,就会调用.wait()方法,在当前调用中是不会主动再去调.notify()方法的,导致你这"生产者"也只能调用一次后面就继续等待了,这样就产生这出现一个"生产了"的结果...
慕森王
TA贡献1777条经验 获得超3个赞
mian 方法启动使用的是同一个move对象. 及两个线程使用的是同一个锁。
每次只会有一个线程在执行方法.
所以按照截图代码应该不会存在楼主描述的问题才对。。
- 3 回答
- 0 关注
- 666 浏览
添加回答
举报
0/150
提交
取消