<JavaEE> Java中线程有多少种状态(State)?状态之间的关系有什么关系?

目录

一、系统内核中的线程状态

二、Java中的线程状态


一、系统内核中的线程状态

状态 说明
就绪状态 线程已经准备就绪,随时可以接受CPU的调度。
阻塞状态 线程处于阻塞等待,暂时无法在CPU中执行。

二、Java中的线程状态

相比于系统内核,Java中对线程的状态进行了更详细的划分:
状态 说明
New Thread对象成功创建,但尚未调用start方法。
Terminated 线程已经执行完毕,但Thread对象仍未销毁。
Runnable 就绪状态,可工作的,随时可以或现在就在CPU上执行。
Timed_waiting 指定等待时间的阻塞,达到指定时间自动解除阻塞。
Waiting 阻塞状态,没有时间限制,需要其他条件才可唤醒。
Blocked 由于锁竞争引起的阻塞。

Java中线程状态之间的关系:

<JavaEE> Java中线程有多少种状态(State)?状态之间的关系有什么关系?_第1张图片

打印线程状态的枚举:

public class Thread_Demo15 {
    public static void main(String[] args) {
        for(Thread.State state:Thread.State.values()){
            System.out.println(state);
        }
    }
}

打印结果:

NEW
RUNNABLE
BLOCKED
WAITING
TIMED_WAITING
TERMINATED


Java中,线程状态使用枚举保存,以上为枚举的内容,即Java中所有的线程状态。

你可能感兴趣的:(JavaEE,java-ee,进程和线程)