Bee*_*ake 11 java multithreading
运行我们的程序时,我们得到java.lang.IllegalMonitorStateException类型的异常.在Java6 API网站上,它说有一个构造函数提供有关异常的详细信息:IllegalMonitorStateException(String s)
我们如何使用它来更好地了解错误在我们的代码中的位置?还有什么我们可以做的(除了我们目前正在进行的大量调试)以确定失败的功能或线路吗?
这可能是因为您正在调用wait或notify on的对象的实例与您同步的实例不同.例如:
Integer a;
a = new Integer(0);
synchronized(a) {
System.out.printf("I synchronized on %h.", a);
++a;
System.out.printf("But, I am calling notify for %h and I hold no lock for it.", a);
a.notify();
}
Run Code Online (Sandbox Code Playgroud)
这将抛出IllegalMonitorStateException
因为'a'指向的实例不再相同.
归档时间: |
|
查看次数: |
21061 次 |
最近记录: |