ThreadGroup Class
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
Sr.No. | Constructor & Description |
---|---|
1 |
ThreadGroup(String name) This constructs a new thread group. |
2 |
ThreadGroup(ThreadGroup parent, String name) This creates a new thread group. |
ThreadGroup Class Methods
Sr.No. | Method & Description |
---|---|
1 |
This method returns an estimate of the number of active threads in this thread group. |
2 |
This method returns an estimate of the number of active groups in this thread group. |
3 |
This method determines if the currently running thread has permission to modify this thread group. |
4 |
This method Destroys this thread group and all of its subgroups. |
5 |
This method copies into the specified array every active thread in this thread group and its subgroups. |
6 |
This method copies into the specified array every active thread in this thread group. |
7 |
This method copies into the specified array references to every active subgroup in this thread group. |
8 |
This method copies into the specified array references to every active subgroup in this thread group. |
9 |
This method returns the maximum priority of this thread group. |
10 |
This method returns the name of this thread group. |
11 |
This method returns the parent of this thread group. |
12 |
This method interrupts all threads in this thread group. |
13 |
This method Tests if this thread group is a daemon thread group. |
14 |
This method tests if this thread group has been destroyed. |
15 |
This method prints information about this thread group to the standard output. |
16 |
This method tests if this thread group is either the thread group argument or one of its ancestor thread groups. |
17 |
This method changes the daemon status of this thread group. |
18 |
This method sets the maximum priority of the group. |
19 |
This method returns a string representation of this Thread group. |
20 |
This method called by the Java Virtual Machine when a thread in this thread group stops because of an uncaught exception, and the thread does not have a specific Thread.UncaughtExceptionHandler installed. |
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" = 1 Thread-1 finished executing.