线程组

 

 


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,设置整组的优先级或者守护线程


1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
MyRunnable mr = new MyRunnable();
Thread t1 = new Thread(mr, "张三");
Thread t2 = new Thread(mr, "李四");
//获取线程组
// 线程类里面的方法:public final ThreadGroup getThreadGroup()
ThreadGroup tg1 = t1.getThreadGroup();
ThreadGroup tg2 = t2.getThreadGroup();
// 线程组里面的方法:public final String getName()
String name1 = tg1.getName();
String name2 = tg2.getName();
System.out.println(name1);
System.out.println(name2);
// 通过结果我们知道了:线程默认情况下属于main线程组
// 通过下面的测试,你应该能够看到,默任情况下,所有的线程都属于同一个组
System.out.println(Thread.currentThread().getThreadGroup().getName());

 

 

自己设定线程组

  • 1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    11
    12
    13
    // ThreadGroup(String name)
    ThreadGroup tg = new ThreadGroup("这是一个新的组");
     
    MyRunnable mr = new MyRunnable();
    // Thread(ThreadGroup group, Runnable target, String name)
    Thread t1 = new Thread(tg, mr, "张三");
    Thread t2 = new Thread(tg, mr, "李四");
     
    System.out.println(t1.getThreadGroup().getName());
    System.out.println(t2.getThreadGroup().getName());
     
    //通过组名称设置后台线程,表示该组的线程都是后台线程
    tg.setDaemon(true);

     

     

posted on   LoaderMan  阅读(211)  评论(0编辑  收藏  举报

< 2025年2月 >
26 27 28 29 30 31 1
2 3 4 5 6 7 8
9 10 11 12 13 14 15
16 17 18 19 20 21 22
23 24 25 26 27 28 1
2 3 4 5 6 7 8

导航

统计

喜欢请打赏

扫描二维码打赏

了解更多

点击右上角即可分享
微信分享提示