正在回答 回答被采纳积分+1
1回答
好帮手慕小班
2019-07-20 14:40:23
同学你好,1、这里关于线程生产者唤醒生产者,同学的理解是正确的,不会出现生产者唤醒生产者的情况,但是这个例子中不是只有生产者与消费者处于等待状态,主线程也处于等待状态哦!因为这里不是单线程,所以主方法不会是阻塞状态,例如:
2、当你调用notify时,只有一个等待线程会被唤醒而且它不能保证哪个线程会被唤醒,而调用notifyAll方法,那么等待该锁的所有线程都会被唤醒!!
3、本案例中只有两个线程会执行休眠方法,主方法不会执行休眠,所以本案例中可以使用notify来唤醒线程,生产者执行完成后,调用notify方法,唤醒消费者线程,消费者执行完成后,调用notify方法,唤醒生产者线程!这三个线程会随机获取CPU时间片哦!但是因为主线程中只有生产者和消费者的内容,所以最后的执行效果会是生产者线程和消费者线程来随机获取CPU时间片!
综上所述,老师会建议同学使用notifyAll唤醒所有线程!
如果我的回答解决了你的疑惑,请采纳。祝:学习愉快~
1. Java 零基础入门
- 参与学习 人
- 提交作业 3802 份
- 解答问题 11489 个
本阶段带你迈入Java世界,学习Java必备基础知识,基础语法、面向对象思想以及常用工具类的使用。
了解课程
恭喜解决一个难题,获得1积分~
来为老师/同学的回答评分吧
0 星