<七>对于之前的一些遗漏的地方的补充
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的安装和 ...
随机推荐
- OSS上传图片无法在线预览的解决方案
OSS上传图片无法在线预览的解决方案 最近在做的项目涉及到商品详情,由于前端用的flutter框架并且该详情为富文本,dart语言关于富文本的组件不是非常友好,当富文本中的图片无法在浏览器中直接预览的 ...
- echarts设置网格线颜色
xAxis: { type: 'value', //设置网格线颜色 splitLine: { show: true, lineStyle:{ color: ['#315070'], width: 1, ...
- 从源码角度来看BeanFactory和ApplicationContext的关系
大家好,我是小黑,这是年前的最后一篇推文,提前祝大家新年快乐~~ 这次我们从源码角度来聊聊BeanFactory和ApplicationContext的关系,讲一些网上文章不曾提到的点. 官方描述 先 ...
- 通过模拟Mybatis动态代理生成Mapper代理类,讲解Mybatis核心原理
本文将通过模拟Mybatis动态代理生成Mapper代理类,讲解Mybatis原理 1.平常我们是如何使用Mapper的 先写一个简单的UserMapper,它包含一个全表查询的方法,代码如下 pub ...
- ubuntu下打开html页面
相信遇到这个问题的各位都是闲人,所以肯定是有时间的,网上打开html教程很多,但是就不吐槽了emmm... 详细信息不在此篇幅,网络资源,我就不重复了,看着很烦的,见附录 下面进入正题 这个配置玩过的 ...
- kmp-最小子串回文次数
poj 2406 Given two strings a and b we define a*b to be their concatenation. For example, if a = &quo ...
- AI漫谈:我们距离实现《庆余年》里的五竹叔机器人还有多远?
(警告: 本文包含少量剧透内容,请酌情阅读) 五竹叔是机器人吗? 看过庆余年的朋友,一定对五竹叔印象深刻,外表英俊潇洒,一袭黑衣加黑布条蒙眼,充满神秘侠客气息.五竹叔不但神秘,而且言行举止常常很 ...
- hdu6621 二分加主席树
题目链接:http://acm.hdu.edu.cn/showproblem.php?pid=6621 Problem Description You have an array: a1, a2, ...
- springboot集成restdocs输出接口文档
1.pom文件新增restdocs <dependency> <groupId>org.springframework.restdocs</groupId> ...
- 【Java并发基础】加锁机制解决原子性问题
前言 原子性指一个或多个操作在CPU执行的过程不被中断的特性.前面提到原子性问题产生的源头是线程切换,而线程切换依赖于CPU中断.于是得出,禁用CPU中断就可以禁止线程切换从而解决原子性问题.但是这种 ...