<七>对于之前的一些遗漏的地方的补充
1.线程的状态:
我们可以通过wait,start,notify等关键字来切换线程的状态,但是我们如何知道线程目前是处于哪一种状态呢?使用Thread.getState()来获取,有下面几种常见的状态:
(1)NEW
实例化的时候,即执行构造函数的时候,但是还没有start
(2)RUNNABLE:
运行中,
(3)TIMED_WAITING:
当前线程执行了Thread.sleep()之后处于睡眠状态
(4)BLOCKED
处于等待锁的状态,注意不是阻塞了,而是处于等待cpu分配资源调度的状态,一般是调用了sleeo()
(5)WAITING
处于阻塞状态,一般是调用了Thread.wait()方法导致的,
下面看看线程组
线程组简单来说就是将同一类型,同一个对象监听器,或者根据其他规则,将一些线程放在一起,将他们分为一个组,这样子方便对他们进行一些批处理操作,并且也可以获取当前
首先看下怎么创建线程组:
Runnable run1 = new Runnable(){
public void run(){
System.out.println("run1");
}
};
Runnable run2 = new Runnable(){
public void run(){
System.out.println("run2");
}
};
ThreadGroup group = new ThreadGroup("我的线程组");
Thread A = new Thread(group,run1);
Thread B = new Thread(group,run2);
如图,这是一个一级线程组,我们将A,B线程归入到了group当中,即线程组里面只有单纯的线程。
之后我们就可以调用类似于:
group.getActiveCount();
group.getName();
的方法来获取当前线程总体的状态,当然也可以执行一些其他操作,比如集体等待,集体唤醒等
那么我们也有多级关联的线程组,简单来说就是线程组里面还有一个线程组,相当于存在子孙,这个不说了
那么我们如果要对一个线程组当中的满足条件的一些线程进行处理,该如何取得他们呢?
ThreadGroup[] groups = new ThreadGroup(Thread.currentThread.getThreadGroup.acticeGroupCount()); Thread.currentGroup().getThreadGroup().enumerate(groups,true);
一种格式,记住就行,就是以枚举的方式将当前线程组的组内线程枚举到指定指定线程组数组,枚举方式有递归和非递归,递归的话会枚举出所有的线程,即遍历整个线程组树,非递归的话只会枚举第一层,
还有一个线程组异常处理和SimpleDateFormat非线程安全两个点,感觉没撒用。。。。待更吧
<七>对于之前的一些遗漏的地方的补充的更多相关文章
- paper 10:支持向量机系列七:Kernel II —— 核方法的一些理论补充,关于 Reproducing Kernel Hilbert Space 和 Representer Theorem 的简介。
在之前我们介绍了如何用 Kernel 方法来将线性 SVM 进行推广以使其能够处理非线性的情况,那里用到的方法就是通过一个非线性映射 ϕ(⋅) 将原始数据进行映射,使得原来的非线性问题在映射之后的空间 ...
- Android Multimedia框架总结(七)C++中MediaPlayer的C/S架构补充及MediaService介绍
转载请把头部出处链接和尾部二维码一起转载,本文出自逆流的鱼,文章链接: http://blog.csdn.net/hejjunlin/article/details/52465168 前面一篇主要介绍 ...
- 【转】 Pro Android学习笔记(四七):Dialog(4):一些补充和思考
目录(?)[-] 编程思想封装接口 fragment和activity以其他fragment之间的通信 编程思想:封装接口 在小例子中,fragment会调用activity的onDialogDone ...
- 四则运算可能需要注意的地方V1.1
作业:https://edu.cnblogs.com/campus/nenu/SWE2017FALL/homework/997 文档下载:https://coding.net/u/Dawnfox/p/ ...
- ASP.NET MVC学习---(七)Razor视图引擎语法
之前体验过razor视图引擎@符号的威力了吧~ 连我这个初学者都能感觉到确实省时省力方便快捷 简直就是居家旅行*人*货必备之物啊(这里和谐两个字~) 那么现在就开始对razor的语法进一步介绍~ 1. ...
- Java编程思想读书笔记
声明:原创作品,转载时请注明文章来自SAP师太技术博客( 博/客/园www.cnblogs.com):www.cnblogs.com/jiangzhengjun,并以超链接形式标明文章原始出处,否则将 ...
- extjs笔记
1. ExtJs 结构树.. 2 2. 对ExtJs的态度.. 3 3. Ext.form概述.. 4 4. Ext.TabPanel篇.. 5 5. Functio ...
- Mybatis.net与MVC入门配置及联合查询动态SQL拼接和简单事务
第一次学习Mybatis.net,在博客园也找到好多资料,但是在配置成功之后也遇到了一些问题,尤其是在动态SQl拼接时候,这里把遇到的问题还有自己写的一个Demo贴出来,希望能帮到新手,有不适合的地方 ...
- sublime前端编辑器入门与个人使用经验分享
Sublime Text(以下简称sublime)是一款很好用的代码编辑器,小巧且很灵敏,几乎可以编写大部分主流的计算机语言代码,更是堪称前端代码编辑神器. 你百度一下会发现许多sublime的安装和 ...
随机推荐
- 微信小程序之双重循环(包含左滑删除,以及数据各项处理)
<view wx:for="{{hommer}}" wx:for-item="item" wx:for-index="index" w ...
- ASP.Net Core 3.0 中使用JWT认证
JWT认证简单介绍 关于Jwt的介绍网上很多,此处不在赘述,我们主要看看jwt的结构. JWT主要由三部分组成,如下: HEADER.PAYLOAD.SIGNATURE HEADER包 ...
- JWT(二):使用 Java 实现 JWT
JWT(一):认识 JSON WebToken JWT(二):使用 Java 实现 JWT 介绍 原理在上篇<JWT(一):认识 JSON Web Token>已经说过了,实现起来并不难, ...
- pc和H5响应式方案
pc响应式:(所有应用在pc端) 解决方案1.媒体查询 2.flex,百分比 3.栅格布局 媒体查询 @media screen and (max-width:768px) @media scree ...
- Milking Cows 挤牛奶 USACO 排序 模拟
1005: 1.2.1 Milking Cows 挤牛奶 时间限制: 1 Sec 内存限制: 128 MB提交: 15 解决: 9[提交] [状态] [讨论版] [命题人:外部导入] 题目描述 1 ...
- day6 相对定位:position:relative
相对定位:position:relative 特点:a.相对于自己原来位置的定位,以自己的左上角为基准. b.相对定位原来的位置仍然算位置,不会出现浮动现象. 以下为初始位置:(可以看出设置margi ...
- MVEL2.0的使用实例(一)
本文是对java整合mvel2.0的一点示例: 如果表达式中有变量,解析表达式时必须传一个map MVEL.eval(expression, vars); /** * 基本解析表达式 */@Testp ...
- restframework 视图
重要知识点 as_view()获取的是view方法名,当url配版成功,执行view方法 一.逻辑封装(mixins, generics) path('author/', views.AuthorVi ...
- Collections中的常用方法
collections中的常用方法 public class CollectionsTest { public static void main(String[] args) { List list ...
- 玩转Django2.0---Django笔记建站基础十一(二)((音乐网站开发))
11.5 歌曲排行榜 歌曲排行榜是通过首页的导航链接进入的,按照歌曲的播放次数进行降序显示.从排行榜页面的设计图可以看到,网页实现三个功能:网页顶部搜索.歌曲分类筛选和歌曲信息列表,其说明如下: 1. ...