我试图让一个线程等待,直到另一个线程通过使用wait和notify完成。我整理了一些简单的测试代码。在代码中,当调用notify时,一个异常就消失了,即是非法的monitorerstate异常。
我创建了一个对象cBotClientThread,该对象从Thread扩展。此类调用等待。在其运行方法中。 我打电话给start来启动我的线程。 该对象的run方法调用wait。 我的程序现在调用notify();发生异常。
void testBotThread()
{
try {
cBotClientThread mBotClientThread = new cBotClientThread()
mBotClientThread.start();
mBotClientThread.notify();
}
catch(Exception e)
{
e.printStackTrace();
}
}
线程对象
public class cBotClientThread extends Thread {
int test=0;
public void run() {
try {
wait();
} catch (InterruptedException e) {
// TODO Auto-generated catch block
e.printStackTrace();
}
System.out.println("Hello from a thread!");
}
}