最近在用Java线程的时候遇到了一个问题,出现了IllegalMonitorStateException,不知道怎么,搞不清楚了,调试了很长时间也没好,不得已换了另外一个角度去考虑问题,才算解决了,但这个异常却怎么也没弄明白。我重写了一个程序再现了这个异常,发出来希望有人能帮得上忙。
代码如下:
public class TestThread{
private static boolean isFile;
private static int sum;
private static Thread th;
public static void main(String[] ar){
th=new Thread(){
public void run(){
while(isFile && sum <=70){
sum += 1;
System.out.println("sum="+sum);
}
}
};
th.start();
isFile=true;
try{
th.wait();
}catch(InterruptedException e){
System.out.println("InterruptedException's shown");
return;
}
}
}
运行这个程序,就会发生IllegalMonitorStateException,
希望有人能明明白白的解释这个异常!