Java ThreadGroup destroy()方法

ThreadGroup类的destroy()方法用于销毁线程组及其所有子组。 线程组必须为空,表示线程组中的所有线程都已停止。

语法

public void destroy()

返回
它不会返回任何值。

例外

  • IllegalThreadStateException:如果线程组不为空或者线程组已被销毁,则抛出此异常。
  • SecurityException:如果当前线程无法修改此线程组。

示例

package com.zaixian.threadgroup;

class NewThread extends Thread {
    NewThread(String threadname, ThreadGroup tg) {
        super(tg, threadname);
    }

    public void run() {
        for (int i = 0; i < 10; i++) {
            try {
                Thread.sleep(10);
            } catch (InterruptedException ex) {
                System.out.println(Thread.currentThread().getName() + " interrupted");
            }
        }
        System.out.println(Thread.currentThread().getName() + " completed executing");
    }
}

public class ThreadGroupDestroyExp {
    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
        NewThread t1 = new NewThread("Thread-1", g1);
        t1.start();
        // creating another thread
        NewThread t2 = new NewThread("Thread-2", g1);
        t2.start();

        // block until other thread is finished
        t1.join();
        t2.join();

        // destroying child threadGroup
        g2.destroy();
        System.out.println(g2.getName() + " destroyed");

        // destroying parent threadGroup
        g1.destroy();
        System.out.println(g1.getName() + " destroyed");
    }
}

执行上面示例代码,得到以下结果:

Thread-2 completed executing
Thread-1 completed executing
Child thread destroyed
Parent thread destroyed

上一篇: Java线程组 下一篇: Java关闭挂钩(shutdown hook)