需要注意的是操作系统的PCB本身是有线程状态的, Java中的线程是⽤Thread表示的,本身是⼀个对象。这个线程状态说的是Thread对象(有自己的生命周期)的状态,并不是PCB的状态。
Java线程共包括一下六种状态NEW,RUNNABLE,TERMINATED,TIMED_WATING,WAITING,BLOCK。
- NEW: 创建一个Java线程,但还没有调用start()方法,也就是没有参与CPU调度,此时就是一个Java的对象。
- RUNNABLE: 运行或在就绪队列中(PCB的就绪队列)
- TERMINATED: 线程执行完成,PCB在操作系统中已经销毁,但是Java对象还在
- TIMED_WATING: 等待一段时间(有时间限制的等待),过时不候
- WATING: 没有时间限制的等待
- BLOCK: 等待锁的时候进入的阻塞状态