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

标签 java android

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

主类

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

测试线程类

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

        }
    }
}

出现以下错误

error java.lang.IllegalMonitorStateException: object not locked by thread before wait()

为什么会出现此错误,我该如何解决?

最佳答案

要么

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

synchronized(this)
{
    wait();
}

根据您的需要。您需要同步您正在等待的任何内容。

关于java - 从其他线程上的类调用 wait(),我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/5685216/

相关文章:

java - 将数组中的字符串更改为 double

java - 如何从内容类型中获取文件扩展名?

java - Sax解析器: processingInstruction() not called

java - 无法使用Android BT API方法

java - 在 android 中的 javaFX 项目上运行调试器

java - android - 多次运行计时器倒计时错误

java - 我无法关闭扫描仪

android - 无法对非静态方法错误进行静态引用

android - 为什么 ActionBarSherlock 没有响应?

java - `canvas.drawCircle`方法的半径是dp单位吗?