一、操作系统层面
在操作系统中线程生命周期可以分为五种状态。分别是:初始状态、可运行状态、运行状态、休眠状态和终止状态。
二、Java层面
但是在Java中,线程的生命周期有六种状态,分别是:新键NEW,就绪RUNNABLE、阻塞BLOCKED、等待WAITING、超时等待TIMED_WAITING、终止Terminated。Java中将操作系统中断休眠状态分为了三种状态,也就是:BLOCKED、WAITING、TIMED_WAITING。只要 Java 线程处于这三种状态之一,那么这个线程就永远没有 CPU 的使用权。