Java线程状态
Java线程状态指的是线程在Java虚拟机中的状态,与某个操作系统的线程状态无关。一个线程只能处于一种状态。
(1)新建
创建线程尚未运行。
(2)可运行
正在Java虚拟机中运行。
在底层操作系统可能在运行,也可能在等待资源调度,资源调度完成之后再运行。所以具体有没有运行,要看底层操作系统的资源调度。
(3)阻塞
在去尝试获取锁monitor lock进入synchronized函数或代码块时,其他线程已经占用了monitor lock,而处于阻塞状态。需要等待其他线程释放monitor lock才能进去可运行状态。
(4)无限等待
等待其他线程显示唤醒。
(5)限期等待
无需等待其他线程显示唤醒,在一定时间后被系统自动唤醒。
(6)死亡
线程结束任务之后自己结束,或者发生异常而结束
(1)新建
创建线程尚未运行。
(2)可运行
正在Java虚拟机中运行。
在底层操作系统可能在运行,也可能在等待资源调度,资源调度完成之后再运行。所以具体有没有运行,要看底层操作系统的资源调度。
(3)阻塞
在去尝试获取锁monitor lock进入synchronized函数或代码块时,其他线程已经占用了monitor lock,而处于阻塞状态。需要等待其他线程释放monitor lock才能进去可运行状态。
(4)无限等待
等待其他线程显示唤醒。
(5)限期等待
无需等待其他线程显示唤醒,在一定时间后被系统自动唤醒。
(6)死亡
线程结束任务之后自己结束,或者发生异常而结束
