从其他线程上的类调用wait()

时间:2011-04-16 07:50:38

标签: java android

我想在其他Thread becoz上调用wait()如果我当前的类代码的某些部分正在执行,请不要被其他线程中断。 为此,我这样做

main.class

testThread as=new testThread();
try{
    synchronized(as) {
        wait();
    }
} catch (Exception e) {
    Log.d(tag, "In ==Scheduler== error"+e.toString());
}

testThread.class

public void run() {
    while(true) {
        System.out.println("Thread"); 
        try {
            Thread.sleep(6000);
        } catch(Exception r) {

        }
    }
}

收到以下错误

  

error java.lang.IllegalMonitorStateException:对象在wait()之前未被线程锁定

为什么我会收到此错误,我该如何解决?

1 个答案:

答案 0 :(得分:6)

无论

synchronized(as)
{
    as.wait();
}

synchronized(this)
{
    wait();
}

根据你的需要。你需要同步你正在等待的任何东西。