急!如何不用interrupt从线程外部终止一个线程? interrupt()一定要等到该线程检查interrupt状态的是后才能抛出错误结束线程,我现在碰到的问题是,一个线程会一直运行,而且不会有wait()sleep()之类的方法,用interrupt()无法结束线程,有没有什么方法可以从外部强制结束该线程? 解决方案 » 免费领取超大流量手机卡,每月29元包185G流量+100分钟通话, 中国电信官方发货 不是有个极度不赞成使用的stop方法嘛... if(!isInterrupted() ){// 程序放这里就不会被执行了} stop()方法使用布尔变量判断 public class Constant{ public static boolean flag = true; public static void setFlag(String flag) { this.flag = flag; } .........}pulic class XXX{ ...... public void run() { while(Constant.flag) { ...... } }}public class User{ ....... void method() { Constant.setFlag(false); ......... }} 谢谢各位回复,stop就不考虑了,加判断位也不太可能,这个线程不是一个死循环线程,正常情况下,运行完成就自动结束了,之所以需要从外部强制结束,是因为执行时间可能很长,如果超过一定时间就不需要他继续执行了,需求就是这样的joejoe1991的回复很正确但是怎么抛出来呢?这个线程在大多数时候都可以及时完成,只是很少数情况会超时,强制结束就是为了不占用资源,由于某些原因不考虑用线程池,各位高手还有什么方法吗? java删除zip文件 关于static方法 一个鼠标右键事件的问题…… 引擎程序! 写文件时出现的问题 jsp无法使用bean的问题 等到解决问题为止!!!!! Cappuccino : Memory Leak & SoftReference 菜鸟要学习! 菜鸟遇到了小问题 关于List的, 求教 当非守护线程执行结束的时候,为什么守护线程还会再接着执行一会儿再结束? 关于Dialog获得焦点的问题,实在是研究不出来了 请帮忙
// 程序放这里就不会被执行了
}
使用布尔变量判断
{
public static boolean flag = true; public static void setFlag(String flag)
{
this.flag = flag;
}
.........
}
pulic class XXX
{
...... public void run()
{
while(Constant.flag)
{
......
}
}
}public class User
{
.......
void method()
{
Constant.setFlag(false);
.........
}
}