猿教程 Logo

Java线程组

Java提供了一种方便的方法来在单个对象中分组多个线程。 这样,我们可以通过单一方法调用来挂起,恢复或中断线程组。

注意:现在不推荐使用suspend(),resume()和stop()方法。

Java线程组由java.lang.ThreadGroup类实现。


ThreadGroup类的构造方法

ThreadGroup类只有两个构造函数。

No.构造函数描述
1)ThreadGroup(String name)创建具有给定名称的线程组。
2)ThreadGroup(ThreadGroup parent,String name)创建具有给定父组和名称的线程组。

ThreadGroup类的重要方法

在线程组类中有很多方法。 下面给出了重要方法的列表。

No.方法描述
1)int activeCount()返回当前组中运行的线程的数量。
2)int activeGroupCount()返回活动组在此线程组中的数量。
3)void destroy()销毁此线程组及其所有子组。
4)String getName()返回此组的名称。
5)ThreadGroup getParent()返回此组的父级。
6)void interrupt()中断此组的所有线程。
7)void list()将此组的信息打印到标准控制台。

让我们看一个代码来分组多个线程。

ThreadGroup tg1 = new ThreadGroup("Group A"); 
Thread t1 = new Thread(tg1,new MyRunnable(),"one");   
Thread t2 = new Thread(tg1,new MyRunnable(),"two");   
Thread t3 = new Thread(tg1,new MyRunnable(),"three");

现在所有3个线程属于一个组。 这里,tg1是线程组名称,MyRunnable是实现Runnable接口的类,“one”,“two”和“three”是线程名称。

现在我们可以通过一行代码中断所有线程。

Thread.currentThread().getThreadGroup().interrupt();

ThreadGroup示例

文件:ThreadGroupDemo.java

public class ThreadGroupDemo implements Runnable{
	public void run() {
	      System.out.println(Thread.currentThread().getName());
	}
   public static void main(String[] args) {
      ThreadGroupDemo runnable = new ThreadGroupDemo();
          ThreadGroup tg1 = new ThreadGroup("Parent ThreadGroup");
          
          Thread t1 = new Thread(tg1, runnable,"one");
          t1.start();
          Thread t2 = new Thread(tg1, runnable,"two");
          t2.start();
          Thread t3 = new Thread(tg1, runnable,"three");
          t3.start();
             
          System.out.println("Thread Group Name: "+tg1.getName());
	     tg1.list();

    }
   }

输出:

one
two
three
Thread Group Name: Parent ThreadGroup
java.lang.ThreadGroup[name=Parent ThreadGroup,maxpri=10]
    Thread[one,5,Parent ThreadGroup]
    Thread[two,5,Parent ThreadGroup]
    Thread[three,5,Parent ThreadGroup]


版权声明:本站所有教程均为本站原创或翻译,转载请注明出处,请尊重他人劳动果实。请记住本站地址:www.yuanjiaocheng.net (猿教程) 作者:卿文刚
本文标题: C#环境
本文地址:http://www.yuanjiaocheng.net/Java/threadgroup-in-java.html