Java Thread destroy()方法

2019-10-16 22:24:33

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