创建斐波纳契系列
public void run(){
int a=0,b=1,c;
while(a<=10000){
prim chk= new prim(a);
chk.start();
synchronized (chk) {
try {
sleep(200);
chk.wait();
} catch (InterruptedException e) {
return;
}
}
c=a+b;
a=b;
b=c;
}
}
检查素数我创建了另一个线程(仅用于练习)
public void run(){
synchronized (this) {
int fl=1;
if(a==1||a==2)
fl=0;
else
for(int i=2;i<=Math.sqrt(a);i++)
if(a%i==0)
fl=0;
if(fl==0)
System.out.println(a);
}
notifyAll();
}
输出中有许多IllegalMonitorState
个例外。
答案 0 :(得分:1)
Object#wait
块调用{p> Object#notifyAll
,synchronized
。