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