关于notify

关于notify

老师我想问一下,执行wait后,又notifyall 不就又把他唤醒了吗?不应该还会出现死锁吗?

正在回答

登陆购买课程后可参与讨论,去登陆

1回答

同学你好,执行wait后,线程就处于等待状态了,而notifyAll()是唤醒线程;如果两个线程都在wait()中等待 ,这时就是死锁。线程变成等待状态后,程序不可以继续往下执行,只有被唤醒后,才能继续往下执行,所以调用notifyAll()并不会再次出现死锁

祝学习愉快~

  • Ungalo 提问者 #1

    老师,这里的线程等待也是按队列依次唤醒嘛,还是随机的?

    2021-03-27 09:29:05
  • 好帮手慕小尤 回复 提问者 Ungalo #2

    同学你好,并不是随机的,notifyAll()方法按照后进先出算法唤醒所有wait状态的线程。

    祝学习愉快!

    2021-03-27 09:51:31
问题已解决,确定采纳
还有疑问,暂不采纳

恭喜解决一个难题,获得1积分~

来为老师/同学的回答评分吧

0 星
请稍等 ...
意见反馈 帮助中心 APP下载
官方微信

在线咨询

领取优惠

免费试听

领取大纲

扫描二维码,添加
你的专属老师