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

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

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

posted @ 2020-09-26 09:54  爱编程DE文兄  阅读(274)  评论(0编辑  收藏  举报