终止线程一般不使用JDK提供的 stop()/destory() 方法它们本身也被JDK废弃了。通常的做法是提供一个boolean型的终止变量,当这个变量置为false,则终止线程的运行。
public class stopThread implements Runnable {
private boolean flag = true;
@Override
public void run(){
System.out.println(Thread.currentThread().getName()+ " 线程开始");
int i = 0;
while(flag){
System.out.println(Thread.currentThread().getName()+ " " + i++);
try{
Thread.sleep(1000);
}catch(InterruptedException e){
e.printStackTrace();
}
}
System.out.println(Thread.currentThread().getName()+" 线程结束");
}
public void stop(){
this.flag = false;
}
public static void main(String[] args)throws Exception{
System.out.println("主线程开始");
StopThread st = new StopThread();
Thread t1 = new Thread();
t1.start();
System.in.read();
st.stop();
System.out.println("主线程结束");
}
}