Course
ThreadGroup Class
Java Tutorial
This Java tutorial is tailored for newcomers, offering a journey from basic principles to complex Java programming techniques. Completing this tutorial equips you with a solid understanding of Java, preparing you for advanced learning. You'll emerge ready to tackle the challenges of becoming a top-tier software engineer, with the skills to innovate and excel in the vast world of software development.
ThreadGroup Class
ThreadGroup Class in Java
The Java ThreadGroup class represents a set of threads. It can also include other thread groups. The thread groups form a tree in which every thread group except the initial thread group has a parent.
ThreadGroup Class Declaration
Following is the declaration for java.lang.ThreadGroup class
public class ThreadGroup extends Object implements Thread.UncaughtExceptionHandler
ThreadGroup Class Constructors
ThreadGroup Class Methods
Methods Inherited
This class inherits methods from the following classes
- java.lang.Object
Example of ThreadGroup Class in Java
Following example showcases the usage of ThreadGroup in a multithreaded program.
package com.tutorialspoint;
public class ThreadGroupDemo implements Runnable { public static void main(String[] args) { ThreadGroupDemo tg = new ThreadGroupDemo(); tg.func(); }
public void func() { try { // create a parent ThreadGroup ThreadGroup pGroup = new ThreadGroup("Parent ThreadGroup"); // create a child ThreadGroup for parent ThreadGroup ThreadGroup cGroup = new ThreadGroup(pGroup, "Child ThreadGroup");
// create a thread Thread t1 = new Thread(pGroup, this); System.out.println("Starting " + t1.getName() + "..."); t1.start(); // create another thread Thread t2 = new Thread(cGroup, this); System.out.println("Starting " + t2.getName() + "..."); t2.start(); // display the number of active threads System.out.println("Active threads in \"" + pGroup.getName() + "\" = " + pGroup.activeCount());
// block until the other threads finish t1.join(); t2.join(); } catch (InterruptedException ex) { System.out.println(ex.toString()); } }
// implements run() public void run() {
for(int i = 0;i < 1000;i++) { i++; } System.out.println(Thread.currentThread().getName() + " finished executing."); }}
Output
Let us compile and run the above program, this will produce the following result
Starting Thread-0...Starting Thread-1...Thread-0 finished executing.Active threads in "Parent ThreadGroup" = 1Thread-1 finished executing.