线程状态
主要分为 ——
text
┌─────────────┐
│ New │
└─────────────┘
│
▼
┌ ─ ─ ─ ─ ─ ─ ─ ─ ─ ─ ─ ─ ─ ─ ─ ┐
┌─────────────┐ ┌─────────────┐
││ Runnable │ │ Blocked ││
└─────────────┘ └─────────────┘
│┌─────────────┐ ┌─────────────┐│
│ Waiting │ │Timed Waiting│
│└─────────────┘ └─────────────┘│
─ ─ ─ ─ ─ ─ ─ ─ ─ ─ ─ ─ ─ ─ ─ ─
│
▼
┌─────────────┐
│ Terminated │
└─────────────┘( 引用自 廖雪峰 线程的状态
New 线程对象被创建,但是各种资源尚未准备好(比如tcb等) Runnable TCB 等已被创建清楚,该线程在就绪队列中等待被运行 Running 线程正在运行中 Blocked 阻塞状态,线程让出资源(主动或者被动) Waiting 等待状态,线程被阻塞让出资源后,被放入对应的等待队列 Terminated 终止线程,可以是主动运行结束,也可能是被意外终止
一个线程从 New 开始,不断的在被调度器或者其他方法影响,在中间四种状态中不断切换,最后到达 Terminatd 状态,标志结束