class Test {
public static void main(String[] args) {
System.out.println("1.. ");
synchronized (args) {
System.out.println("2..");
try {
Thread.currentThread().wait();
} catch (InterruptedException e) {
// TODO Auto-generated catch block
e.printStackTrace();
}
System.out.println("3..");
}
}
}
IllegalMonitorStateException
このコードでモニター例外が発生しています。私の理解によると、文字列配列オブジェクトである同期ブロックのためargs
、現在のスレッドはロックを取得している必要があり、wait メソッドを使用してロックを解放しています。
誰かがこの例外の背後にある理由を説明できますか?