Thread
類的destroy()
方法用於銷毀執行緒組及其所有子組。 執行緒組必須為空,表示執行緒組中的所有執行緒都已停止。
語法
public void destroy()
異常
IllegalThreadStateException
:如果執行緒組不為空或者執行緒組已被銷毀,則丟擲此異常。SecurityException
:如果當前執行緒無法修改此執行緒組。範例
public class JavaDestroyExp extends Thread
{
JavaDestroyExp(String threadname, ThreadGroup tg)
{
super(tg, threadname);
start();
}
public void run()
{
for (int i = 0; i < 2; i++)
{
try
{
Thread.sleep(10);
}
catch (InterruptedException ex) {
System.out.println("Exception encounterted");}
}
System.out.println(Thread.currentThread().getName() +
" finished executing");
}
public static void main(String arg[]) throws InterruptedException, SecurityException
{
// creating a ThreadGroup
ThreadGroup g1 = new ThreadGroup("Parent thread");
// creating a child ThreadGroup for parent ThreadGroup
ThreadGroup g2 = new ThreadGroup(g1, "child thread");
// creating a thread
JavaDestroyExp t1 = new JavaDestroyExp("Thread-1", g1);
// creating another thread
JavaDestroyExp t2 = new JavaDestroyExp("Thread-2", g1);
// block until other thread is finished
t1.join();
t2.join();
// destroying child thread
g2.destroy();
System.out.println(g2.getName() + " destroyed");
// destroying parent thread
g1.destroy();
System.out.println(g1.getName() + " destroyed");
}
}
執行上面範例程式碼,得到以下結果:
Thread-1 finished executing
Thread-2 finished executing
child thread destroyed
Parent thread destroyed