public class Stop extends Thread {
boolean flag = true;
public Stop(String name){
super(name);
}
@Override
public synchronized void run() {
int i = 0 ;
while(flag){
try {
this.wait();
} catch (InterruptedException e) {
System.out.println("接收到了异常了....");
}
System.out.println(Thread.currentThread().getName()+":"+i);
i++;
}
}
public static void main(String[] args) {
Stop d = new Stop("停止");
d.setPriority(10);
d.start();
for(int i = 0 ; i<100 ; i++){
System.out.println("主线程"+Thread.currentThread().getName()+":"+i);
//当主线程的i是80的时候停止线程。
//d.interrupt(); // interrupt()根本就是无法停止一个线程。
if(i==80){
d.flag = false;
d.interrupt(); //把线程的等待状态强制清除,被清除状态的线程会接收到一个InterruptedException。
/*
* synchronized (d) {
d.notify();
}//使用这个方法开辟的线程不会受到异常
*/
}
}
}
}