前
日研究Java线程问题,发现很多书上都没有提到interrput()方法,提到的也说用interrupt()方法无法实现线程中断,可是,经过我的
不断尝试,竟然使用interrupt()方法和isInterrupted()方法实现了线程的中断,如果这个方法可以,那么除了使用共享变量的方式可
以中断线程之外又多了一种中断线程的方法,希望这个方法对大家有所帮助。
class ThreadA extends Thread{
int count = 0;
public void run(){
System.out.println(getName() + " 将要运行...");
while (!this.isInterrupted()){
System.out.println(getName() + " 运行中 " + count++);
try{
Thread.sleep(400); // 休眠400毫秒
}catch(InterruptedException e){ // 退出阻塞态时将捕获异常
System.out.println(getName()+"从阻塞态中退出...");
this.interrupt(); // 改变线程状态,使循环结束
}
}
System.out.println(getName() + " 已经终止!");
}
}
class ThreadDemo134{
public static void main(String argv[]) throws InterruptedException{
ThreadA ta = new ThreadA();
ta.setName("ThreadA");
ta.start();
Thread.sleep(2000);// 主线程休眠2000毫秒,等待其他线程执行
System.out.println(ta.getName()+" 正在被中断.....");
ta.interrupt(); // 中断线程ThreadA
}
}