急!如何不用interrupt从线程外部终止一个线程?

NewIJ 2007-09-07 02:43:16
interrupt()一定要等到该线程检查interrupt状态的是后才能抛出错误结束线程,我现在碰到的问题是,一个线程会一直运行,而且不会有wait()sleep()之类的方法,用interrupt()无法结束线程,有没有什么方法可以从外部强制结束该线程?
...全文
236 6 打赏 收藏 转发到动态 举报
写回复
用AI写文章
6 条回复
切换为时间正序
请发表友善的回复…
发表回复
NewIJ 2007-09-14
  • 打赏
  • 举报
回复
谢谢各位回复,stop就不考虑了,加判断位也不太可能,这个线程不是一个死循环线程,正常情况下,运行完成就自动结束了,之所以需要从外部强制结束,是因为执行时间可能很长,如果超过一定时间就不需要他继续执行了,需求就是这样的joejoe1991的回复很正确但是怎么抛出来呢?这个线程在大多数时候都可以及时完成,只是很少数情况会超时,强制结束就是为了不占用资源,由于某些原因不考虑用线程池,各位高手还有什么方法吗?
schumiXsuse 2007-09-10
  • 打赏
  • 举报
回复
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);
.........
}
}


joejoe1991 2007-09-09
  • 打赏
  • 举报
回复
想办法让线程丢异常就好了。。。
happykiki 2007-09-07
  • 打赏
  • 举报
回复
stop()方法
使用布尔变量判断
Davis129 2007-09-07
  • 打赏
  • 举报
回复
if(!isInterrupted() ){
// 程序放这里就不会被执行了
}
zephyr_cc 2007-09-07
  • 打赏
  • 举报
回复
不是有个极度不赞成使用的stop方法嘛...

62,623

社区成员

发帖
与我相关
我的任务
社区描述
Java 2 Standard Edition
社区管理员
  • Java SE
加入社区
  • 近7日
  • 近30日
  • 至今
社区公告
暂无公告

试试用AI创作助手写篇文章吧