一、线程状态的6个定义
ava中线程状态的定义在java.lang.Thread.State类里,共分为5个状态,如下:
New:尚未启动的线程的线程状态。
Runnable:可运行线程的线程状态,等待CPU调度。
Blocked:线程阻塞等待获取同步监视器锁定的线程状态,处于阻塞状态的线程在进入同步代码块/同步方法或者再次进入同步代码块/同步方法前需获取同步监视器的锁定。
Waiting:等待线程的状态,不带超时的方法有:Object.wait、Thread.join、LockSupport.park。
Timed Waiting:具有指定等待时间的等待线程的线程状态,带超时的方法有:Thread.sleep、Object.wait、Thread.join、LockSupport.parkNanos、LockSupport.parkUntil。
Terminated:终止线程的线程状态,线程正常完成执行或者出现异常会处于该状态。
二、线程状态切换流程图