Java enumerate()方法
线程类的
enumerate()方法用于将每个活动线程的线程组及其子组复制到指定的数组。此方法使用
tarray 参数调用枚举方法。
此方法使用activeCount方法来估计数组的大小。如果数组的长度太短而无法容纳所有线程,则多余的线程将被忽略。
语法
public static int enumerate(Thread[] tarray)
参数
tarray: 此方法是要复制到的Thread对象的数组。
Return
此方法返回放入数组的线程数。
示例
public class JavaEnumerateExp extends Thread {
JavaEnumerateExp(String threadname, ThreadGroup tg) {
super(tg, threadname);
start();
}
public void run() {
for (int i = 0; i < 5; i++) {
try {
Thread.sleep(10);
}
catch (InterruptedException ex) {
System.out.println("Exception encounterted");
}
}
System.out.println(Thread.currentThread().getName() +" completed executing");
}
public static void main(String arg[]) throws InterruptedException,SecurityException {
// creating the ThreadGroup ThreadGroup g1 = new ThreadGroup("Parent thread");
// creating a child ThreadGroup for parent ThreadGroup ThreadGroup g2 = new ThreadGroup(g1, "child thread");
// creating a thread JavaEnumerateExp t1 = new JavaEnumerateExp("Thread-1", g1);
System.out.println("Starting of Thread-1");
// creating another thread JavaEnumerateExp t2 = new JavaEnumerateExp("Thread-2", g1);
System.out.println("Starting of Thread-2");
// returns the number of threads put into the array Thread[] group = new Thread[g1.activeCount()];
int count = g1.enumerate(group);
// prints active threads for (int i = 0; i < count; i++) {
System.out.println(group[i].getName() + " found");
}
}
}
输出:
Starting of Thread-1Starting of Thread-2Thread-1 foundThread-2 foundThread-1 completed executingThread-2 completed executing