Thread类的enumerate()方法用于将每个活动线程的线程组及其子组复制到指定的数组中。 此方法使用tarray参数调用enumerate方法。
此方法使用activeCount方法来估计数组应该有多大。 如果数组的长度太短而无法容纳所有线程,则会以静默方式忽略额外的线程。
语法
public static int enumerate(Thread[] tarray)
参数
tarray :此方法是要复制到的Thread对象数组。
返回此方法返回放入数组的线程数。
示例
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-1 Starting of Thread-2 Thread-1 found Thread-2 found Thread-1 completed executing Thread-2 completed executing
¥ 我要打赏 纠错/补充 收藏
哥,这回真没有了