有感于线程中断的一个方法

王朝java/jsp·作者佚名  2006-01-09
宽屏版  字体: |||超大  

前日研究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

}

}

程序运行结果在相册中

 
 
 
免责声明:本文为网络用户发布,其观点仅代表作者个人观点,与本站无关,本站仅提供信息存储服务。文中陈述内容未经本站证实,其真实性、完整性、及时性本站不作任何保证或承诺,请读者仅作参考,并请自行核实相关内容。
© 2005- 王朝网络 版权所有