Home »
Java programming language
Java ThreadGroup destroy() method with example
ThreadGroup Class destroy() method: Here, we are going to learn about the destroy() method of ThreadGroup Class with its syntax and example.
Submitted by Preeti Jain, on December 23, 2019
ThreadGroup Class destroy() method
- destroy() method is available in java.lang package.
- destroy() method is used to destroy this thread group and when we destroy this thread group so its child thread group will be destroyed simultaneously.
- destroy() method is a non-static method, it is accessible with the class object only and if we try to access the method with the class name then we will get an error.
-
destroy() method may throw an exception at the time of destroying this thread group.
- SecurityException – This exception may throw when the current thread is not permitted to update this thread group.
-
IllegalThreadStateException – This exception may throw in two cases
- When this thread group has already been destroyed.
- When this thread group is not blank.
Syntax:
public final void destroy();
Parameter(s):
- It does not accept any parameter.
Return value:
The return type of this method is void, it returns nothing.
Example:
// Java program to demonstrate the example
// of void destroy() method of ThreadGroup
public class Destroy implements Runnable {
public static void main(String[] args) {
Destroy des = new Destroy();
des.destroyed();
}
public void destroyed() {
try {
// Create two thread group and the named are base
// and derived
ThreadGroup base = new ThreadGroup("Base ThreadGroup");
ThreadGroup derived = new ThreadGroup(base, "Derived ThreadGroup");
// create two threads
Thread th1 = new Thread(base, this);
Thread th2 = new Thread(derived, this);
//By using getName() method is to retrieve the
// name of the thread th1
System.out.println(th1.getName() + " " + "begins.....");
// By using start() method is to start its execution
// of thread th1
th1.start();
//By using getName() method is to retrieve the
// name of the thread th2
System.out.println(th2.getName() + " " + "begins.....");
// By using start() method is to start its execution
// of thread th2
th2.start();
System.out.println();
// By using join() method is to wait the current
// thread till complete execution of another
// thread
th1.join();
th2.join();
// By using destroy() method is to
// destroy the thread group named derived
derived.destroy();
boolean b1 = derived.isDestroyed();
System.out.println(derived.getName() + " " + "destroyed" + " " + b1);
boolean b2 = base.isDestroyed();
System.out.println(base.getName() + " " + "destroyed" + " " + b2);
} catch (InterruptedException ex) {
ex.printStackTrace();
}
}
// Override run()
public void run() {
for (int k = 0; k < 100; ++k)
++k;
System.out.println(Thread.currentThread().getName() + " " + "ends.....");
}
}
Output
Thread-0 begins.....
Thread-0 ends.....
Thread-1 begins.....
Thread-1 ends.....
Derived ThreadGroup destroyed true
Base ThreadGroup destroyed false