还是没理解“死锁”问题。
如上图,先赋值flag为false,走到消费时,一判断没生产出来呢,所以就开始等待了,这时走生产线程因为flag为false因而进行生产flag设置为true,由于线程交替运行这时再走消费线程然后再走生产线程并一对对输出出结果。那此时怎么会产生死锁问题呢?不都交替执行线程正常输出结果吗?不懂!
登陆购买课程后可参与讨论,去登陆吧
同学,你好“如上图,先赋值flag为false,走到消费时,一判断没生产出来呢,所以就开始等待了,这时走生产线程因为flag为false因而进行生产flag设置为true”这没错,这之后,就消费不了了,因为它会一直wait()下去,只要没有叫醒它,它就永远等下去了,不会去消费。祝学习愉快!
明白了,谢谢!
我要问的是:
①、到底是一个线程处于等待中并没有唤醒就会产生死锁还是程序的全部两个线程都处于等待中并没有唤醒才会产生死锁?(视频里老师讲的是都等待的)
②、如果是都等待的话那是怎么具体实现的呢?麻烦详细讲一下实现过程,谢谢!
1)都会死锁,但一般的一个线程,程序员并不会粗心到让它无限等待。容易出问题的就是多个线程处于等待中并没有唤醒产生的死锁。 2)如果实现什么?是指如果解决死锁吗?用完资源后,唤醒别人就可以了,可以参考本小节的最后内容部分。
恭喜解决一个难题,获得1积分~
来为老师/同学的回答评分吧
登录后可查看更多问答,登录/注册
此次推出的专题为Android攻城狮培养计划的第一部分语法与界面基础篇,将带大家从0开始学习Android开发。
46 56
1 26
26 24
90 24
0 24
在线咨询
领取优惠
免费试听
领取大纲
恭喜解决一个难题,获得1积分~
来为老师/同学的回答评分吧
0 星