Java提供了一种方便的方法来将多个线程分组在一个对象中。Java线程组由java.lang.ThreadGroup类实现。
一个线程组代表一组线程。此外,一个线程组还可以包括其他线程组。线程组形成一棵树,其中除了初始线程组,每个线程组都有一个父级。
一个线程可以访问它自己的线程组的信息,但不能访问其线程组的父线程组或任何其他线程组的信息。
让我们创建几个线程并将其作为一个组。
public class ThreadGroupExample {
public static void main(final String[] args) {
final Runnable runnable1 = () -> {
System.out.println("Runnable One");
};
final Runnable runnable2 = () -> {
System.out.println("Runnable Two");
};
final Runnable runnable3 = () -> {
System.out.println("Runnable Three");
};
final Runnable runnable4 = () -> {
System.out.println("Runnable Four");
};
final ThreadGroup threadGroup = new ThreadGroup("MyThreadGroup");
final Thread thread1 = new Thread(threadGroup, runnable1, "ThreadOne");
thread1.start();
final Thread thread2 = new Thread(threadGroup, runnable2, "ThreadTwo");
thread2.start();
final Thread thread3 = new Thread(threadGroup, runnable3, "ThreadThree");
thread3.start();
final Thread thread4 = new Thread(threadGroup, runnable4, "ThreadFour");
thread4.start();
System.out.println("Thread group name :: " + threadGroup.getName());
threadGroup.list();
}
}
输出:
Runnable One
Runnable Three
Thread group name :: MyThreadGroup
Runnable Two
java.lang.ThreadGroup[name=MyThreadGroup,maxpri=10]
Runnable Four
Thread[ThreadTwo,5,MyThreadGroup]
Thread[ThreadFour,5,MyThreadGroup]
https://docs.oracle.com/javase/8/docs/api/java/lang/ThreadGroup.html
版权说明 : 本文为转载文章, 版权归原作者所有 版权申明
原文链接 : https://www.javaguides.net/2018/09/threadgroup-class-in-java.html
内容来源于网络,如有侵权,请联系作者删除!