What is a ThreadGroup?
Created May 8, 2012
Brandon Rohlfs
A ThreadGroup is used to represent a group of Threads. A tree structure can be formed from ThreadsGroups containing other ThreadGroups. Threads can only access the ThreadGroup to which they belong. This means that access to a ThreadGroups parent or other ThreadGroup is not permitted. Once a ThreadGroup is created various information can be obtained such as the ThreadGroups name, how many threads are active, the maximum priority that can be contained within the group and a host of other information.
The ThreadGroup class provides two constructors.
ThreadGroup(String name) ThreadGroup(ThreadGroup parent, String name)
public class ThreadGroupTest{ public static void main(String[] args){ ThreadGroup squares = new ThreadGroup("Squares"); Thread t1 = new Thread(squares, new T(), "t1"); Thread t2 = new Thread(squares, new T(), "t2"); t1.start(); t2.start(); System.out.println("ThreadGroup name is: " + squares.getName()); System.out.println("There are currently " + squares.activeCount() + " threads running"); System.out.println("The maximum priority of a Thread that can be contained within " + squares.getName() + " is " + squares.getMaxPriority()); System.out.println("There are currently " + squares.activeGroupCount() + " active groups"); System.out.println(squares.getName() + " parent is " + squares.getParent()); } } class T implements Runnable{ private int square; public void run(){ for(int i = 1; i < 5; i++){ square = i * i; System.out.println("Thread " + Thread.currentThread().getName() + " has a priority of " + Thread.currentThread().getPriority() + ": " + square); } } }