Java中线程的6种状态详解

Posted

tags:

篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了Java中线程的6种状态详解相关的知识,希望对你有一定的参考价值。

java.lang.Thread.State枚举类中定义了六种线程的状态,可以调用线程Thread中的getState()方法获取当前线程的状态

public enum State 
        NEW,
        RUNNABLE,
        BLOCKED,
        WAITING,
        TIMED_WAITING,
        TERMINATED;

线程状态 说明
NEW 初始状态,线程被构建,但是还没有调用start()方法
RUNNABLE 运行状态,Java线程将操作系统中的就绪和运行两种状态笼统地称作“运行中”
BLOCKED 阻塞状态,表示线程阻塞于锁
WAITING 等待状态,表示线程进入等待状态,进入该状态表示当前线程需要等待其他线程做出一些特定动作(通知或中断)
TIME_WAITING 超时等待状态,该状态不同于WAITING,它是可以在指定的时间自行返回的
TERMINATED 终止状态,表示当前线程已经执行完毕

具体状态切换如下图所示,下图源自《Java并发编程艺术》

以上是关于Java中线程的6种状态详解的主要内容,如果未能解决你的问题,请参考以下文章

Java多线程系列--“JUC线程池”04之 线程池原理

多线程线程状态和案例演示

Java线程的6种状态转换

Java多线程之线程状态总结

线程池的五种状态及创建线程池的几种方式

java线程五种状态