如何在Java中使用不同的类来使用wait()和notify()

如何在Java中使用不同的类来使用wait()和notify(),java,netbeans,concurrency,Java,Netbeans,Concurrency,我试图在classA中包含一个等待函数,但我想从classB中notify()。如何实现这一点?您在这里有多种选择。最简单的方法是创建一个任何类型的对象,并在两个类之间共享该对象 java中的任何对象都可以具有notify()和wait()方法 所以你可以创建一个对象 Object sharedObject = new Object(); 然后将该对象传递给两个类(或者更准确地说,传递给类的实例) 然后在ClassA中的某个方法中,您可以调用: synchronized(sharedObjec

我试图在classA中包含一个等待函数,但我想从classB中
notify()
。如何实现这一点?

您在这里有多种选择。最简单的方法是创建一个任何类型的对象,并在两个类之间共享该对象

java中的任何对象都可以具有notify()和wait()方法

所以你可以创建一个对象

Object sharedObject = new Object();
然后将该对象传递给两个类(或者更准确地说,传递给类的实例)

然后在ClassA中的某个方法中,您可以调用:

synchronized(sharedObject) {
     sharedObject.wait();
}
在一个线程上,然后在另一个线程上,您可以通过调用以下命令将其唤醒:

synchronized(sharedObject) {
     sharedObject.notify();
}
这是一种基本的方法。 请注意,在等待或通知之前,您需要对该对象进行同步

有一种更先进、更健壮的方法,使用条件变量

你可以在这个优秀的在线课程中了解更多


它非常便宜,但它教会您如何很好地使用所有这些并发技术

让他们共享一个监控对象。当你发布这样的问题时,你需要展示一些研究成果。你写的代码在哪里?
synchronized(sharedObject) {
     sharedObject.notify();
}