16.ThreadGroup线程组
public class ThreadGroupDemo implements Runnable{
public static void main(String[] args){
//建立一个名为"GroupName"的线程组
ThreadGroup group = new ThreadGroup("GroupName");
//将T1,T2两个线程加入组中
Thread thread1 = new Thread(group,new ThreadGroupDemo(),"T1");
Thread thread2 = new Thread(group,new ThreadGroupDemo(),"T2");
thread1.start();
thread2.start();
//获得活动线程的总数
System.out.println(group.activeCount());
//线程组中所有的线程信息
group.list();
}
@Override
public void run() {
String s = Thread.currentThread().getThreadGroup().getName() + "-" + Thread.currentThread().getName();
while (true){
System.out.println("I am "+s);
try {
Thread.sleep(3000);
} catch (InterruptedException e) {
e.printStackTrace();
}
}
}
//I am GroupName-T1
//I am GroupName-T2
//2
//java.lang.ThreadGroup[name=GroupName,maxpri=10]
// Thread[T1,5,GroupName]
// Thread[T2,5,GroupName]
//I am GroupName-T1
//I am GroupName-T2
//I am GroupName-T1
//I am GroupName-T2
//I am GroupName-T1
//I am GroupName-T2
}
16.ThreadGroup线程组的更多相关文章
- Java多线程16:线程组
线程组 可以把线程归属到某一个线程组中,线程组中可以有线程对象,也可以有线程组,组中还可以有线程,这样的组织结构有点类似于树的形式,如图所示: 线程组的作用是:可以批量管理线程或线程组对象,有效地对线 ...
- 线程组ThreadGroup
ThreadGroup线程组表示一个线程的集合.此外,线程组也可以包含其他线程组. 线程组构成一棵树,在树中,除了初始线程组外,每个线程组都有一个父线程组. 允许线程访问有关自己的线程组的信息,但 ...
- java 多线程 线程组ThreadGroup;多线程的异常处理。interrupt批量停止组内线程;线程组异常处理
1,线程组定义: 线程组存在的意义,首要原因是安全.java默认创建的线程都是属于系统线程组,而同一个线程组的线程是可以相互修改对方的数据的.但如果在不同的线程组中,那么就不能"跨线程组&q ...
- Java多线程核心技术(六)线程组与线程异常
本文应注重掌握如下知识点: 线程组的使用 如何切换线程状态 SimpleDataFormat 类与多线程的解决办法 如何处理线程的异常 1.线程的状态 线程对象在不同运行时期有不同的状态,状态信息就处 ...
- Java多线程编程(七)线程状态、线程组与异常处理
一.线程的状态 线程对象在不同的运行时期有不同的状态,状态信息就存在于State枚举类中. 调用与线程有关的方法后,会进入不同的线程状态,这些状态之间某些是可双向切换的,比如WAITING和RUNNI ...
- Java线程组(ThreadGroup)使用
JDK 对线程组类注释: A thread group represents a set of threads. In addition, a thread group can also includ ...
- 线程组ThreadGroup分析详解 多线程中篇(三)
线程组,顾名思义,就是线程的组,逻辑类似项目组,用于管理项目成员,线程组就是用来管理线程. 每个线程都会有一个线程组,如果没有设置将会有些默认的初始化设置 而在java中线程组则是使用类ThreadG ...
- JDK中线程组ThreadGroup
如果线程有100条...分散的不好管理... 线程同样可以分组ThreadGroup类. 线程组表示一个线程的集合.此外,线程组也可以包含其他线程组.线程组构成一棵树,在树中,除了初始线程组外,每个线 ...
- “全栈2019”Java多线程第十三章:线程组ThreadGroup详解
难度 初级 学习时间 10分钟 适合人群 零基础 开发语言 Java 开发环境 JDK v11 IntelliJ IDEA v2018.3 文章原文链接 "全栈2019"Java多 ...
随机推荐
- 爬虫技术:cookies池的维护
一:为什么要维护cookie 1.登录才能爬取内容 2.爬取频繁会被封号. 3.需要维护多个账号的cookie,实现大规模抓取 二:cookies的要求 1.自动登录更新 2.定期筛选验证 3.提供外 ...
- mysql跟踪sql
mysql中执行的sql跟踪比oracle简单多了,它自身有log.我们只要打开这个log记录,执行sql语句,再查看这个log就可以了.1. 首先要打开log的开关使用命令:show variabl ...
- STM32中stm32f0xx_flash.icf文件的作用详解!(不错的!)
版权声明:本文为博主原创文章,未经博主允许不得转载. https://blog.csdn.net/weibo1230123/article/details/80142210 每个芯片开发商都会针对每款 ...
- boost phoenix
In functional programming, functions are objects and can be processed like objects. With Boost.Phoen ...
- MyBatis框架之异常处理
MyBatis框架定义了许多的异常类,之所以定义这么多的异常类,应该是将每一种异常情况都独立出来,这样在出现异常时,定位就很明确了.而我们平时写代码时,都是瞎搞一通,异常类大多也是随便定义,或者是使用 ...
- Java Web学习总结(12)Filter过滤器
一,Filter简介 Filter也称之为过滤器,Filter是对客户端访问资源的过滤,符合条件放行,不符合条件不放行,并且可以对目标资源访问前后进行逻辑处理. 二,Filter开发步骤 1)编写一个 ...
- mybatis的Date类型。
在写select的时候,里面的查询语句.where后面如果jdbcType=DATE没有写的话是 这个形式的. <select id="selectPhoto" parame ...
- springmvc的请求参数
@RequestMapping("/testRequestParam") public String testRequestParam(@RequestParam("us ...
- [CF1149E]Election Promises
可以猜想这题和sg函数有关.(反正也没有什么其它可用的算法) 因为是个DAG,所以可以先求出每个点的sg值.考虑怎样求答案. 根据sg函数证明的思路,我们可以考虑构造一个权值,使得以下三个条件满足: ...
- python练习题自己实现一个字符串的find函数
# 第五题:自己实现一个字符串的find函数 # 1.在一个字符串中查找另一个字符串 # 2.找到了返回第一次出现的位置 # 3.没找到返回-1 # 4.参数s1为源字符串,参数s2为要查找的字符串 ...