62,614
社区成员
发帖
与我相关
我的任务
分享
public class AllThread {
public static Thread[] getAllThread() {
ThreadGroup root = Thread.currentThread().getThreadGroup();
ThreadGroup ttg = root;
while ((ttg = ttg.getParent()) != null) root = ttg;
Thread[] tlist = new Thread[(int)(root.activeCount() * 1.2)];
return java.util.Arrays.copyOf(tlist, root.enumerate(tlist, true));
}
public static void main(String[] args) {
Thread[] ts = getAllThread();
for (Thread t : ts) {
System.out.println(t.getId() + ": " + t.getName());
}
}
}
2: Reference Handler
3: Finalizer
4: Signal Dispatcher
5: Attach Listener
1: main
public class AllThread {
/**
* @param args
*/
public static void main(String[] args) {
new Thread("thread1") {
public void run() {
for (int i = 0; i < 2; i++) {
try {
Thread.sleep(500);
} catch (Exception e) {
}
}
}
}.start();
new Thread("thread2") {
public void run() {
for (int i = 0; i < 2; i++) {
try {
Thread.sleep(500);
} catch (Exception e) {
}
}
}
}.start();
ThreadGroup tg = Thread.currentThread().getThreadGroup();
Thread[] threads = new Thread[20];
int count = tg.enumerate(threads);
for (int i = 0; i < count; i++) {
System.out.println(threads[i].getName());
}
}
}