请稍等 ...
×

采纳答案成功!

向帮助你的同学说点啥吧!感谢那些助人为乐的人

关于notify的使用场景

老师您好,我看网上有提到说,wait, notify, notifyAll 这三个函数都是要在Synchronized代码块中去使用的

关于wait方法需要在Synchronized块中去使用我可以理解,因为wait()需要释放获得的对象锁,所以必须要先在Synchronized块下去拥有锁

而关于notify和notifyAll方法,根据祥仔的讲解,他们只是使得处于等待池的线程进入锁池去竞争获取锁的机会。

那就算不在Synchronized块下面,不是也应该可以调用该锁对象的notify方法,让该锁对象中处于等待池的线程进入锁池去竞争获取锁的机会嘛?

所以notify和notifyAll方法是否必须使用在Synchronized块下面呢?

希望祥仔可以帮忙解惑~,感谢!

正在回答

插入代码

2回答

同学好,同学其实可以直接动手试试,就会发现notify和notifyall也都要放在synchrozined里, 这两个都是通知其他线程锁已释放,要是都没有获取,通知了也没有意义了


0 回复 有任何疑惑可以回复我~
  • 提问者 YogurtJ #1
    非常感谢!
    回复 有任何疑惑可以回复我~ 2020-02-11 16:14:49
4566413851 2020-02-11 13:14:28

同学,你这么多问题

0 回复 有任何疑惑可以回复我~
问题已解决,确定采纳
还有疑问,暂不采纳
意见反馈 帮助中心 APP下载
官方微信