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非线程安全两个点,感觉没撒用。。。。待更吧

最新文章

  1. 【开源】OSharp框架解说系列(2.1):EasyUI的后台界面搭建及极致重构
  2. 【PCB】【项目记录】AWG任意波形产生器
  3. 9.7 js进阶总结2
  4. Network - Nmap
  5. shopnc nginx优化配置文件
  6. Linux下的正则表达式(基础)
  7. 安装mysql-python报错:UnicodeDecodeError: 'ascii' codec can't decode byte 0xe2 in position 65: ordinal not in range(128)
  8. bat编程基本知识
  9. flex 4 datagrid 奇偶行颜色设置
  10. GIT入门笔记(2)- 典型的工作模式
  11. PVLAN 简介
  12. JDBC 连接
  13. 代码,java_web
  14. CSS3 正方体
  15. CF1101
  16. [转]gdb调试多进程和多线程命令
  17. 011-/etc/resolv.conf详解
  18. 【python】globle的使用
  19. [TOP10]最受欢迎的10个Metasploit模块和插件
  20. Codeforces Round #532 (Div. 2)- B(思维)

热门文章

  1. java中高级并发SPI机制
  2. python3 三行代码基于HTTP2完美实现APNS推送【详解】
  3. windows创建git并连结github
  4. Jaeger容器化部署
  5. Java 数据结构快速入门
  6. Apache Hudi使用问题汇总(一)
  7. es5中数组的遍历方法
  8. 史上最详细的VMware 安装CentOS 7
  9. Django HttpResponse、render、redirect
  10. form get