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

Java终止线程问题
在主线程中启动了一个子线程

先已知子线程被阻塞,是因为url连接建立,阻塞在读取数据方面,因此通过标识符判断使子线程自动结束的方法无法使用了

先就请教,如何在主线程中直接kill掉这个子线程了

使用了
t.stop()//t为子线程引用
或者
try   {
t.sleep(300);
}   catch   (InterruptedException   x)   {
t.interrupt();//中断线程
}
2个方法均无法直接kill掉线程t,因为在执行方法之前之后,执行t.isAlive()均为true

不知道现在有没有其他别的方法能够使用了


------解决方案--------------------
在读数据的那个线程方法中加个判断,如果标志为真,则 sleep(). or interrupt()
------解决方案--------------------
URLConnection.setReadTimeout
------解决方案--------------------
一个线程的run()方法结束,它的生命也走到了终点。
要在主进程中,控制线程的存活,控制run()方法便可,常用的方式是:
public void run() {
while(flag) {
....
}
}

控制flag(boolean)的值,便可以控制这个线程的存活。