线程组

线程组

Java中使用ThreadGroup来表示线程组,它可以对一批线程进行分类管理,Java允许程序直接对线程组进行控制。

默认情况下,所有的线程都属于主线程组。

public finalThreadGroup getThreadGroup()

我们也可以给线程设置分组

Thread(ThreadGroup group,Runnable target, String name)

有何用?

         可以对一个线程组进行操作,如将一个线程组设置为守护线程,获取线程组的最大优先级等。

 

例子1:线程组的使用

public classMyRunnable implementsRunnable {

 

   @Override

   public void run() {

      for (int x = 0; x < 100; x++){

         System.out.println(Thread.currentThread().getName()+ ":"+ x);

      }

   }

 

}

 

/*

 * 线程组:把多个线程组合到一起。

 * 它可以对一批线程进行分类管理,Java允许程序直接对线程组进行控制。

 */

public classThreadGroupDemo {

   public static void main(String[] args) {

      // method1();

 

      // 我们如何修改线程所在的组呢?

      // 创建一个线程组

      // 创建其他线程的时候,把其他线程的组指定为我们自己新建线程组

      method2();

 

      // t1.start();

      // t2.start();

   }

 

   private static void method2() {

      // ThreadGroup(String name)

      ThreadGrouptg = newThreadGroup("这是一个新的组");

 

      MyRunnablemy = newMyRunnable();

      // Thread(ThreadGroup group, Runnable target, Stringname)

      Threadt1 = newThread(tg, my, "林青霞");

      Threadt2 = newThread(tg, my, "刘意");

     

      System.out.println(t1.getThreadGroup().getName());

      System.out.println(t2.getThreadGroup().getName());

     

      //通过组名称设置后台线程,表示该组的线程都是后台线程

      tg.setDaemon(true);

   }

 

   private static void method1() {

      MyRunnablemy = newMyRunnable();

      Threadt1 = newThread(my, "林青霞");

      Threadt2 = newThread(my, "刘意");

      // 我不知道他们属于那个线程组,我想知道,怎么办

      // 线程类里面的方法:public final ThreadGroup getThreadGroup()

      ThreadGrouptg1 = t1.getThreadGroup();

      ThreadGrouptg2 = t2.getThreadGroup();

      // 线程组里面的方法:public final String getName()

      Stringname1 = tg1.getName();

      Stringname2 = tg2.getName();

      System.out.println(name1);

      System.out.println(name2);

      // 通过结果我们知道了:线程默认情况下属于main线程组

      // 通过下面的测试,你应该能够看到,默任情况下,所有的线程都属于同一个组

      System.out.println(Thread.currentThread().getThreadGroup().getName());

   }

}

运行结果:

这是一个新的组

这是一个新的组

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值