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

(1)默认情况下,所有的线程都属于主线程组。 public final ThreadGroup getThreadGroup()

(2)我们也可以给线程设置分组 Thread(ThreadGroupgroup, Runnabletarget, Stringname)

下面我根据代码来实现:

 1 package cn.itcast_06; 2  3 public class MyRunnable implements Runnable { 4  5     @Override 6     public void run() { 7         for (int x = 0; x < 100; x++) { 8             System.out.println(Thread.currentThread().getName() + ":" + x); 9         }10     }11 12 }

 1 package cn.itcast_06; 2  3 /* 4  * 线程组: 把多个线程组合到一起。 5  * 它可以对一批线程进行分类管理,Java允许程序直接对线程组进行控制。 6  */ 7 public class ThreadGroupDemo { 8     public static void main(String[] args) {14         MyRunnable my = new MyRunnable();15         Thread t1 = new Thread(my, "林青霞");16         Thread t2 = new Thread(my, "刘意");17         // 我不知道他们属于那个线程组,我想知道,怎么办18         // 线程类里面的方法:public final ThreadGroup getThreadGroup()19         ThreadGroup tg1 = t1.getThreadGroup();20         ThreadGroup tg2 = t2.getThreadGroup();21         // 线程组里面的方法:public final String getName()22         String name1 = tg1.getName();23         String name2 = tg2.getName();24         System.out.println(name1);25         System.out.println(name2);26         // 通过结果我们知道了:线程默认情况下属于main线程组27         // 通过下面的测试,你应该能够看到,默任情况下,所有的线程都属于同一个组28         System.out.println(Thread.currentThread().getThreadGroup().getName());
//t1.start();
//t1.start();
}
}

输出结果是:

当然现实生活中我们要自定义线程组,所有接下来我们讲解自定义线程组

这里我们不得不说自定义线程组的逻辑如下:

(1)创建一个线程组

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

 1 package cn.itcast_06; 2  3 public class MyRunnable implements Runnable { 4  5     @Override 6     public void run() { 7         for (int x = 0; x < 100; x++) { 8             System.out.println(Thread.currentThread().getName() + ":" + x); 9         }10     }11 12 }
 1 package cn.itcast_06; 2  3 /* 4  * 线程组: 把多个线程组合到一起。 5  * 它可以对一批线程进行分类管理,Java允许程序直接对线程组进行控制。 6  */ 7 public class ThreadGroupDemo { 8     public static void main(String[] args) { 9         // method1();10 11         // 我们如何修改线程所在的组呢?12         // 创建一个线程组13         // 创建其他线程的时候,把其他线程的组指定为我们自己新建线程组14         method2();15 16         // t1.start();17         // t2.start();18     }19 20     private static void method2() {21         // ThreadGroup(String name)22         ThreadGroup tg = new ThreadGroup("这是一个新的组");23 24         MyRunnable my = new MyRunnable();25         // Thread(ThreadGroup group, Runnable target, String name),指定t1和t2为线程组tg26         Thread t1 = new Thread(tg, my, "林青霞");27         Thread t2 = new Thread(tg, my, "刘意");28        29         System.out.println(t1.getThreadGroup().getName());30         System.out.println(t2.getThreadGroup().getName());31         32         //通过组名称设置后台线程,表示该组的线程都是后台线程,这里可以直接设置线程组,就可以设置线程组中的所有的线程33         tg.setDaemon(true);34     }35 36     private static void method1() {37         MyRunnable my = new MyRunnable();38         Thread t1 = new Thread(my, "林青霞");39         Thread t2 = new Thread(my, "刘意");40         // 我不知道他们属于那个线程组,我想知道,怎么办41         // 线程类里面的方法:public final ThreadGroup getThreadGroup()42         ThreadGroup tg1 = t1.getThreadGroup();43         ThreadGroup tg2 = t2.getThreadGroup();44         // 线程组里面的方法:public final String getName()45         String name1 = tg1.getName();46         String name2 = tg2.getName();47         System.out.println(name1);48         System.out.println(name2);49         // 通过结果我们知道了:线程默认情况下属于main线程组50         // 通过下面的测试,你应该能够看到,默任情况下,所有的线程都属于同一个组51         System.out.println(Thread.currentThread().getThreadGroup().getName());52     }53 }

更多相关文章

  1. SpringBoot 2.0 中 HikariCP 数据库连接池原理解析
  2. android之TimePicker
  3. android 开发 讯飞语音唤醒功能
  4. Android(安卓)Material Design 系列之 CoordinatorLayout + Coll
  5. Android(安卓)Studio相关配置Mac版
  6. 简单实现Android绘图板
  7. android builde.gradle 动态配置域名
  8. Android(安卓)Banner轮播控件
  9. Android基础入门教程——8.1.3 Android中的13种Drawable小结 Par

随机推荐

  1. Android监听Home、电源键
  2. Caused by: java.lang.IllegalStateExcep
  3. android模拟器设置代理上网
  4. 【Android(安卓)framework】AndroidManag
  5. android:allowClearUserData
  6. 安卓自定义属性,Android(安卓)studio无法
  7. 界面有Edittext时有些手机进入界面会自动
  8. android之ListView的item布局问题总结
  9. android工程导出成为jar包。
  10. Android实现ListView异步加载图片