• java基础-多线程-线程组


    线程组
     * Java中使用ThreadGroup来表示线程组,它可以对一批线程进行分类管理,Java允许程序直接对线程组进行控制。
     * 默认情况下,所有的线程都属于主线程组。
      * public final ThreadGroup getThreadGroup()//通过线程对象获取他所属于的组
      * public final String getName()//通过线程组对象获取他组的名字
     * 我们也可以给线程设置分组
      * 1,ThreadGroup(String name) 创建线程组对象并给其赋值名字
      * 2,创建线程对象
      * 3,Thread(ThreadGroup?group, Runnable?target, String?name)
      * 4,设置整组的优先级或者守护线程

      * 线程组的使用,默认是主线程组
    public class Demo4_ThreadGroup {
     /**
      * @param args
      * ThreadGroup
      */
     public static void main(String[] args) {
      //demo1();
      ThreadGroup tg = new ThreadGroup("我是一个新的线程组");  //创建新的线程组
      MyRunnable mr = new MyRunnable();      //创建Runnable的子类对象
      
      Thread t1 = new Thread(tg, mr, "张三");     //将线程t1放在组中
      Thread t2 = new Thread(tg, mr, "李四");     //将线程t2放在组中
      
      System.out.println(t1.getThreadGroup().getName());  //获取组名
      System.out.println(t2.getThreadGroup().getName());
      
      tg.setDaemon(true);//  ***********************************************可以将一个组的线程一块处理  
     }
     public static void demo1() {
      MyRunnable mr = new MyRunnable();
      Thread t1 = new Thread(mr, "张三");
      Thread t2 = new Thread(mr, "李四");
      
      ThreadGroup tg1 = t1.getThreadGroup();
      ThreadGroup tg2 = t2.getThreadGroup();
      
      System.out.println(tg1.getName());    //默认的是主线程
      System.out.println(tg2.getName());
     }
    }
    class MyRunnable implements Runnable {
     @Override
     public void run() {
      for(int i = 0; i < 1000; i++) {
       System.out.println(Thread.currentThread().getName() + "...." + i);
      }
     }
     
  • 相关阅读:
    大话串口:我和它的恩恩怨怨
    分布式网游server的一些想法(一) 语言和平台的选择
    C++: C没有闭包真的很痛苦……
    C++不是C/C++
    最美树算法
    类魔兽世界 技能 天赋 成就 log 系统设计
    C++网游服务端开发(一):又无奈的重复造了个轮子,一个底层网络库
    C++ protobuf 不仅仅是序列化……
    深入WPFStyle
    Illusion = Caliburn.Micro + MEF
  • 原文地址:https://www.cnblogs.com/wuxu/p/10727680.html
Copyright © 2020-2023  润新知