”;
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 | int activeCount()
This method returns an estimate of the number of active threads in this thread group.
|
2 | int activeGroupCount()
This method returns an estimate of the number of active groups in this thread group.
|
3 | void checkAccess()
This method determines if the currently running thread has permission to modify this thread group.
|
4 | void destroy()
This method Destroys this thread group and all of its subgroups.
|
5 | int enumerate(Thread[] list)
This method copies into the specified array every active thread in this thread group and its subgroups.
|
6 | int enumerate(Thread[] list, boolean recurse)
This method copies into the specified array every active thread in this thread group.
|
7 | int enumerate(ThreadGroup[] list)
This method copies into the specified array references to every active subgroup in this thread group.
|
8 | int enumerate(ThreadGroup[] list, boolean recurse)
This method copies into the specified array references to every active subgroup in this thread group.
|
9 | int getMaxPriority()
This method returns the maximum priority of this thread group.
|
10 | String getName()
This method returns the name of this thread group.
|
11 | ThreadGroup getParent()
This method returns the parent of this thread group.
|
12 | void interrupt()
This method interrupts all threads in this thread group.
|
13 | boolean isDaemon()
This method Tests if this thread group is a daemon thread group.
|
14 | boolean isDestroyed()
This method tests if this thread group has been destroyed.
|
15 | void list()
This method prints information about this thread group to the standard output.
|
16 | boolean parentOf(ThreadGroup g)
This method tests if this thread group is either the thread group argument or one of its ancestor thread groups.
|
17 | void setDaemon(boolean daemon)
This method changes the daemon status of this thread group.
|
18 | void setMaxPriority(int pri)
This method sets the maximum priority of the group.
|
19 | String toString()
This method returns a string representation of this Thread group.
|
20 | void uncaughtException(Thread t, Throwable e)
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.
”;