如果在当前进程中遍历进程中的所有线程?

lonelydreamsym 2010-07-26 10:05:38
如题
...全文
519 8 打赏 收藏 转发到动态 举报
AI 作业
写回复
用AI写文章
8 条回复
切换为时间正序
请发表友善的回复…
发表回复
dr_lou 2010-07-26
  • 打赏
  • 举报
回复
public static String[] getThreadNames() {   
ThreadGroup group = Thread.currentThread().getThreadGroup();
ThreadGroup parent = null;
while ( (parent = group.getParent()) != null ) {
group = parent;
}
Thread[] threads = new Thread[group.activeCount()];
group.enumerate(threads);
java.util.HashSet set = new java.util.HashSet();
for (int i=0; i < threads.length; ++i) {
if (threads[i] != null && threads[i].isAlive()) {
try {
set.add(threads[i].getThreadGroup().getName()+","
+threads[i].getName()+","
+threads[i].getPriority());
} catch (Throwable e) {e.printStackTrace();}
}
}
String[] result = (String[]) set.toArray(new String[0]);
java.util.Arrays.sort(result);
return result;
}


运行一下结果,然后自由发挥吧。
DAVE_LUO 2010-07-26
  • 打赏
  • 举报
回复
线程组中可以打印出其所有线程的瞬时状态。

void list(PrintStream out, int indent) {
int ngroupsSnapshot;
ThreadGroup[] groupsSnapshot;
synchronized (this) {
for (int j = 0 ; j < indent ; j++) {
out.print(" ");
}
out.println(this);
indent += 4;
for (int i = 0 ; i < nthreads ; i++) {
for (int j = 0 ; j < indent ; j++) {
out.print(" ");
}
out.println(threads[i]);
}
ngroupsSnapshot = ngroups;
if (groups != null) {
groupsSnapshot = Arrays.copyOf(groups, ngroupsSnapshot);
} else {
groupsSnapshot = null;
}
}
for (int i = 0 ; i < ngroupsSnapshot ; i++) {
groupsSnapshot[i].list(out, indent);
}
}
qianxuopen 2010-07-26
  • 打赏
  • 举报
回复
线程的问题也不是很懂 前几天做一个东西用到了线程,一跑就把CPU占满了,还以为是线程满了 结果老大一看就骂我 不是线程的问题,是资源占用 嘿嘿,虽然不懂还是要顶一个
楼主给我作证啊,我顶老..
宁静-夏天 2010-07-26
  • 打赏
  • 举报
回复
线程池也只是注册了处理任务的线程,并不可能注册所有的线程。
而且java是间接控制线程,这个问题感觉从os和C的角度考虑其可行性可能更合适。
lonelydreamsym 2010-07-26
  • 打赏
  • 举报
回复
是遍历当前进程中的所有线程
DAVE_LUO 2010-07-26
  • 打赏
  • 举报
回复
如果使用了线程组,我想可以遍历该组中的所有线程。
  • 打赏
  • 举报
回复
不能遍历所有进程,最多只能遍历 JVM 进程中的东西。
myisfei 2010-07-26
  • 打赏
  • 举报
回复
通过线程池管理

62,634

社区成员

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

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