Java线程教程 – Java线程组
线程总是线程组的成员。
默认情况下,线程的线程组是其创建者线程的组。
Java程序中的线程组由java.lang.ThreadGroup类的一个对象表示。
Thread类中的getThreadGroup()方法返回一个线程的ThreadGroup的引用。
例子
以下代码演示了,默认情况下,新线程是其创建者线程的线程组的成员。
public class Main { public static void main(String[] args) { Thread t1 = Thread.currentThread(); ThreadGroup tg1 = t1.getThreadGroup(); System.out.println("Current thread"s name: " + t1.getName()); System.out.println("Current thread"s group name: " + tg1.getName()); Thread t2 = new Thread("my new thread"); ThreadGroup tg2 = t2.getThreadGroup(); System.out.println("New thread"s name: " + t2.getName()); System.out.println("New thread"s group name: " + tg2.getName()); } }
上面的代码生成以下结果。
注意
您还可以创建线程组,并在该线程组中放置一个新线程。
要在你的线程组中放置一个新线程,我们必须使用Thread类的一个构造函数来接受一个ThreadGroup对象作为参数。
以下代码将新线程放置在特定线程组中:
ThreadGroup myGroup = new ThreadGroup("My Thread Group"); Thread t = new Thread(myGroup, "myThreadName");
线程组以树状结构布置。线程组可以包含另一个线程组。
ThreadGroup类中的getParent()方法返回线程组的父线程组。
顶层线程组的父级为null。
ThreadGroup的activeCount()方法返回组中活动线程数的估计值。
ThreadGroup类的enumerate()方法返回线程组中的线程。