当前位置:  开发笔记 > 编程语言 > 正文

java for wait()方法的异常

如何解决《javaforwait()方法的异常》经验,为你挑选了1个好方法。

您得到的是java.lang.IllegalMonitorStateException因为您调用的对象wait()(t1)不拥有同步锁.

请注意,当您将方法声明为时,该方法synchronized的锁定所有者是当前对象(Bees在这种情况下是您的实例).如果你想打电话wait()t1,你需要同步的t1:

...
    Thread t1 = new Thread();
    synchronized(t1) {
        t1.start();
        System.out.print("1 ");
        t1.wait(5000);
    }
...

另外,在捕获异常时,应始终将异常本身包含在日志输出中,至少应该如此

...
} catch (Exception e) {
   System.out.println("thrown to main" + e);
}
...

否则,您可能会错过重要信息(例如实际抛出了哪个异常).

另请参阅Java™教程:同步.



1> Andreas Fest..:

您得到的是java.lang.IllegalMonitorStateException因为您调用的对象wait()(t1)不拥有同步锁.

请注意,当您将方法声明为时,该方法synchronized的锁定所有者是当前对象(Bees在这种情况下是您的实例).如果你想打电话wait()t1,你需要同步的t1:

...
    Thread t1 = new Thread();
    synchronized(t1) {
        t1.start();
        System.out.print("1 ");
        t1.wait(5000);
    }
...

另外,在捕获异常时,应始终将异常本身包含在日志输出中,至少应该如此

...
} catch (Exception e) {
   System.out.println("thrown to main" + e);
}
...

否则,您可能会错过重要信息(例如实际抛出了哪个异常).

另请参阅Java™教程:同步.

推荐阅读
携手相约幸福
这个屌丝很懒,什么也没留下!
DevBox开发工具箱 | 专业的在线开发工具网站    京公网安备 11010802040832号  |  京ICP备19059560号-6
Copyright © 1998 - 2020 DevBox.CN. All Rights Reserved devBox.cn 开发工具箱 版权所有