Java线程的6种状态及切换
一、线程六种状态
线程的状态在java中有明确的定义,在java.lang.Thread.State中有6种。
- ① New:线程被创建,未执行和运行的时候
- ② Runnable:不代表线程在跑,两种:被cpu执行的线程,随时可以被cpu执行的状态。
- ③ Blocked:线程阻塞,处于synchronized同步代码块或方法中被阻塞。
- ④ Waiting:等待先生的线程状态。线程当前不执行,如果被其他唤醒后会继续执行的状态。依赖另一个线程的通知的。这个等待是一直等,没人叫你,你起不来。
- ⑤ Time Waiting:指定等待时间的等待线程的线程状态。带超时的方式:Thread.sleep,Object.wait,Thread.join,LockSupport.parkNanos,LockSupport.parkUntil
- ⑥ Terminated:正常执行完毕或者出现异常终止的线程状态。
二、线程状态流程解析
