java的wait,notify,notifyAll为什么要在同步块和同步方法里?

我对这个的理解:人家是设计成这样的。你会发现在wait前是要先拿到锁的,然后wait释放锁,让其他线程抢夺。在notify或notifyAlll前,你要先拿到锁,然后唤醒线程,当同步代码结束后释放锁,这时候其他线程便可以抢了。

这整个过程都离不开锁,如果不在同步上下文中使用wait,notify,notifyAll,锁就失去意义了,而且同步代码块就是为了解决多线程引发的问题,在其他地方你可以想象多线程间的wait,notify,notifyAll是多么杂乱无章!

原文地址:https://www.cnblogs.com/ibcdwx/p/13733911.html