Java 我们应该避免显式使用wait/notify/notifyAll吗
我的问题是关于显式使用Java 我们应该避免显式使用wait/notify/notifyAll吗,java,multithreading,Java,Multithreading,我的问题是关于显式使用wait()和notify()。当我们需要像“代码>生产者消费者< /代码>之类的东西时,我们试图避免它,而不是考虑使用阻止DeQue。 我想了想,但没有找到多少合理的解释。此外,我还试图发明一个例子,在这个例子中,我们必须显式地使用wait()和notify(),但失败了。在java.util.concurrent中有更好的更高层次的结构,所以现在使用wait/notify是非常可疑的。哪一个是?你能举个例子吗?都是。使用哪一个取决于你在做什么。Wait和notify是用
wait()
和notify()
。当我们需要像“代码>生产者消费者< /代码>之类的东西时,我们试图避免它,而不是考虑使用<代码>阻止DeQue<代码>。
我想了想,但没有找到多少合理的解释。此外,我还试图发明一个例子,在这个例子中,我们必须显式地使用
wait()
和notify()
,但失败了。在java.util.concurrent
中有更好的更高层次的结构,所以现在使用wait/notify
是非常可疑的。哪一个是?你能举个例子吗?都是。使用哪一个取决于你在做什么。Wait和notify是用于实现高级同步对象(队列、信号量、屏障等)的低级原语。使用Wait()和notify()没有什么错,但请始终扪心自问:“我是在发明别人已经做过的事情吗?”concurrent包和第三方包(如guava和ApacheCommons)提供了许多高质量、非常有用的类,您不应该尝试为自己重新创建这些类。