java如何监控线程是否在运行??求大虾指点。在线,急救。

AlenOU 2012-10-08 11:10:07
请教大虾们,我要在java中监控应用程序中的线程是否在运行,请问该如何去做?谢谢各位不吝赐教。
...全文
472 8 打赏 收藏 转发到动态 举报
写回复
用AI写文章
8 条回复
切换为时间正序
请发表友善的回复…
发表回复
AlenOU 2012-10-12
  • 打赏
  • 举报
回复
[Quote=引用 7 楼 的回复:]
引用 2 楼 的回复:

那些线程已经写好,我现在要做的是监控那些线程。不能修改原来的代码。而且线程代码是已经封装好了。


巧妇难为无米之炊...
[/Quote]

啥意思、??
NewMoons 2012-10-11
  • 打赏
  • 举报
回复
[Quote=引用 2 楼 的回复:]

那些线程已经写好,我现在要做的是监控那些线程。不能修改原来的代码。而且线程代码是已经封装好了。
[/Quote]

巧妇难为无米之炊...
AlenOU 2012-10-11
  • 打赏
  • 举报
回复
[Quote=引用 4 楼 的回复:]

那用java visualVM
[/Quote]

这个jdk自带的只适用于我们开发的吧?客户能看懂这个么??
BariFeng 2012-10-08
  • 打赏
  • 举报
回复
你可以单独起个监控线程,监控线程与被监控线程之间通过发送心跳来确认是否正常运行
AlenOU 2012-10-08
  • 打赏
  • 举报
回复
[Quote=引用 4 楼 的回复:]
那用java visualVM
[/Quote]

下面的静态方法可以用数组返回Java VM中当前运行的所有线程
public static Thread[] findAllThreads() {
ThreadGroup group =
Thread.currentThread().getThreadGroup();
ThreadGroup topGroup = group;

// 遍历线程组树,获取根线程组
while ( group != null ) {
topGroup = group;
group = group.getParent();
}
// 激活的线程数加倍
int estimatedSize = topGroup.activeCount() * 2;
Thread[] slackList = new Thread[estimatedSize];
//获取根线程组的所有线程
int actualSize = topGroup.enumerate(slackList);
// copy into a list that is the exact size
Thread[] list = new Thread[actualSize];
System.arraycopy(slackList, 0, list, 0, actualSize);
return list;
}

这个么??
BariFeng 2012-10-08
  • 打赏
  • 举报
回复
那用java visualVM
AlenOU 2012-10-08
  • 打赏
  • 举报
回复
[Quote=引用 1 楼 的回复:]
你可以单独起个监控线程,监控线程与被监控线程之间通过发送心跳来确认是否正常运行
[/Quote]

那些线程已经写好,我现在要做的是监控那些线程。不能修改原来的代码。而且线程代码是已经封装好了。
AlenOU 2012-10-08
  • 打赏
  • 举报
回复
那些线程已经写好,我现在要做的是监控那些线程。不能修改原来的代码。而且线程代码是已经封装好了。

67,513

社区成员

发帖
与我相关
我的任务
社区描述
J2EE只是Java企业应用。我们需要一个跨J2SE/WEB/EJB的微容器,保护我们的业务核心组件(中间件),以延续它的生命力,而不是依赖J2SE/J2EE版本。
社区管理员
  • Java EE
加入社区
  • 近7日
  • 近30日
  • 至今
社区公告
暂无公告

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