java中如何判断一个线程是否存在?

ttabc 2007-05-21 11:20:39
我的程序中用到了两个线程类分别是a和b,a线程类用来做业务处理,主类派生出许多a线程类的实例来处理业务,同时,需要一个线程类b来监控a线程的实例线程的运行情况,简单来说,就是要判断那些线程是否在运行,如果不在运行,则要重新启动。情况就是这样子,因为对java语言的了解还不够深入,特别是线程这一块,还往高手多多指教!
...全文
1505 10 打赏 收藏 转发到动态 举报
写回复
用AI写文章
10 条回复
切换为时间正序
请发表友善的回复…
发表回复
huanghong1986 2011-10-24
  • 打赏
  • 举报
回复
fy_kenny 2008-01-22
  • 打赏
  • 举报
回复
if(!checker.isAlive()) {
checker.start();
}

我第二次 判断checker.isAlive() 还是false

结果 又调用了checker.start() 就出现了...java.lang.IllegalThreadStateException这个异常
ttabc 2007-05-24
  • 打赏
  • 举报
回复
貌似不行,请楼上的写具体点可以吗?
ttabc 2007-05-21
  • 打赏
  • 举报
回复
顶一下,
wanghongtaoleifeng 2007-05-21
  • 打赏
  • 举报
回复
这是一个典型的观察者模式,只是在多线程的情况下而以:

业务A
{
A()
{
this.addObserver(B.getInstance())
}
run();
}

监控B{
Vector v;//装载所有的A

run()
{
定时监控v的变化情况,
update();
}

update()
{
if(!a.isAlive())
{
new A().start()
}
}
}
lm_pla 2007-05-21
  • 打赏
  • 举报
回复
对类a的所有reference用isAlive()方法来判断
ttabc 2007-05-21
  • 打赏
  • 举报
回复
上面的回答没有答到问题的关键所在
tomkai 2007-05-21
  • 打赏
  • 举报
回复
如果只是监听线程a是否存在或者说是否在运行应该更恰当一点...

只需要用线程a 的isAlive()方法来判断是否在运行即可

gongyali2005 2007-05-21
  • 打赏
  • 举报
回复
线程不能重新启动啊.
Brunhild 2007-05-21
  • 打赏
  • 举报
回复
gz

62,614

社区成员

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

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