打印所有状态
public class ThreadDemo4 {
public static void main(String[] args) {
for (Thread.State s: Thread.State.values()
) {
System.out.println(s);
}
}
}
NEW
RUNNABLE
BLOCKED
WAITING
TIMED_WAITING
TERMINATED
状态
NEW
Thread 对象有了,内核中的线程(PCB)还没有,任务布置了,但是还没有开始执行
RUNNABLE
就绪状态,当前线程正在CPU上执行或者已经准备好随时上CPU,有一个专门的就绪队列来维护
BLOCKED 等待锁
WAITING wait
TIMED_WAITING sleep
三种阻塞状态,当前线程停了下来,不会继续到CPU上执行,只能等待时机成熟。
TERMINATED 内核中的线程已经结束了(PCB没了),但是代码中的Thread对象还在(这个对象等待GC回收)
isAlive(线程存活,除了NEW、TERMINATED之外,其他状态都表示线程存活(PCB是否存活))
状态的转移