Java并发编程 - 线程状态
2018-08-18 本文已影响7人
HRocky
These states are virtual machine states which do not reflect any operating system thread states.
Java语言中规定了线程的状态,但是这些状态只是表现在JVM层面上,并不反映的是操作系统线程状态。
线程状态转移图
![](https://img.haomeiwen.com/i13096591/f64001bf4643e5bf.png)
线程状态定义
NEW
这个状态表示:线程还未启动
RUNNABLE
这个状态表示:线程在Java虚拟机中可运行
RUNNABLE状态包括了操作系统线程状态中的Running和Ready,也就是说处于此状态的线程可能正在运行,也可能正在等待系统资源,如等待CPU为它分配时间片;等待网络IO读取数据。
BLOCKED
这个状态表示:线程阻塞等待监视锁。
WAITING
这个状态表示:线程处于无限期等待状态
处于这种状态的线程不会被分配CPU执行时间,它们要等待显示地被其他线程唤醒。
TIMED_WAITING
这个状态表示:线程限期等待状态。
与WAITING不同的是等待时间的区别。
TERMINATED
这个状态表示:线程已停止运行。
线程已完成执行