java 线程的状态有哪些

java 线程的状态有哪些

作者:Joshua Lee发布时间:2026-04-13 15:16阅读时长:13 分钟阅读次数:2
常见问答
Q
Java线程在执行过程中会经历哪些不同的状态?

我想了解Java线程运行时会经过哪些状态,以及它们分别代表什么含义?

A

Java线程的主要状态及含义

Java线程在生命周期中会经历新建(New)、就绪(Runnable)、运行(Running)、阻塞(Blocked)、等待(Waiting)、定时等待(Timed Waiting)和终止(Terminated)等状态。新建状态表示线程被创建但未启动;就绪状态表示线程已准备好运行,等待CPU调度;运行状态是线程正在执行;阻塞状态是因为等待某个监视器锁;等待状态是线程无限期等待某个条件;定时等待状态是线程等待一定时间后自动恢复;终止状态表示线程执行完毕或者被终止。

Q
如何判断Java线程当前处于哪个状态?

有没有方法可以在运行时查看Java线程的状态?

A

获取Java线程状态的方式

可以通过Java线程类Thread的getState()方法来获取线程当前的状态。该方法返回一个Thread.State枚举值,表示线程当前所处的状态。通过调用这个方法,就能知道线程是处于新建、就绪、运行、阻塞还是终止等状态。

Q
Java线程的阻塞和等待状态有什么区别?

经常看到线程有阻塞和等待状态,它们的区别是什么?

A

阻塞状态与等待状态的区别解析

阻塞状态是线程因等待监视器锁而被挂起,只有当锁被释放后才能继续执行;等待状态则是线程主动放弃CPU资源,等待其他线程调用notify()或notifyAll()来唤醒它。简单来说,阻塞是由于资源不可用造成的等待,而等待则是线程自行进入等待状态,等待外部通知。