java多线程-线程状态

JDK中Thread.State提供了6种状态

/**
     * 创建线程对象
     */
    NEW,

    /**
     * start方法后
     */
    RUNNABLE,

    /**
     * 遇到同步锁,无法获取锁对象
     */
    BLOCKED,

    /**
     * wait方法
     */
    WAITING,

    /**
     * sleep方法
     */
    TIMED_WAITING,

    /**
     * 线程代码跑完
     */
    TERMINATED;

其中RUNNABLE状态可分为2个状态

Ready
当线程创建后,其他线程调用start方法,该线程就进入到就绪状态,JVM就会为创建方法调用栈和程序计数器,处于这个状态的线程位于可运行的池中,等待获取CPU的使用权,其他处于阻塞状态解除阻塞之后也会进入就绪状态

Running
处于这个状态的线程占用CPU,执行程序代码,只有处于就绪状态的线程才会有机会转到运行状态


线程状态.png

你可能感兴趣的:(java多线程-线程状态)