当我调用notify()时得到一个非法moniterstate异常;

时间:2018-11-30 17:32:49

标签: java illegalmonitorstateexcep

我试图让一个线程等待,直到另一个线程通过使用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!");
}

}

0 个答案:

没有答案