我想打印或者使用三個線程。 第一線應打印一個號碼,然後第二個線程的第二個數字,然後第三thread.I嘗試使用共享靜態整數來實現它,但我的代碼表明IllegalMonitorStateException.Can請人檢查並告訴我的錯誤?爲什麼IllegalMonitorStateException?
class ThreadRevisit extends Thread
{
static Integer number;
int num;
ThreadRevisit(String name,Integer number,int num)
{
super(name);
this.number=number;
this.num=num;
}
public void run()
{
int n= number;
do
{
synchronized(ThreadRevisit.number)
{
if(n>100)
{
number.notifyAll();
break;
}
if (n%3==num)
{
System.out.println(Thread.currentThread().getName()+" "+num);
number=number+1;
}
number.notifyAll();
try
{
number.wait();
}catch(Exception e)
{
}
}
}
while(true);
}
}
class T1
{
public static void main(String[] ar)
{
Integer inn=new Integer(0);
ThreadRevisit.number=inn;
ThreadRevisit t1=new ThreadRevisit("one",inn,0);
ThreadRevisit t2=new ThreadRevisit("two",inn,1);
ThreadRevisit t3=new ThreadRevisit("three",inn,2);
t1.start();
t2.start();
t3.start();
}