日期:2014-05-20  浏览次数:20872 次

java 如何强行终止一个线程?(线程阻塞,所以不能用标志自然终止)
run代码如下,使用flag标志来控制线程的启停,但现在是线程不知什么原因阻塞在了业务代码,也就是说线程本身已经无法走到判断flag代码的地方了。
此时另一个监视线程判断这个线程阻塞后要杀掉这个阻塞线程然后重新启动一个线程,但现在不知如何强行终止这个线程。
已知的方法有:
1、stop()方法,但官方不推荐这么做;
2、interrupt()方法,老实说不知道和stop的区别,以为一样,但执行就报如下异常。
java.lang.InterruptedException: sleep interrupted
at java.lang.Thread.sleep(Native Method)

别的就不知有什么方法了,有没有类似unix下kill -9之类效果的方法?

Java code
run(){
    while(flag){
        //线程代码,通过webservice读写外网服务器数据,处理业务。
    }
}

谢谢!

------解决方案--------------------
仔细看看这篇博文:
http://www.blogjava.net/jinfeng_wang/archive/2008/04/27/196477.html