讲师中心 微信公众号
AI工具推荐 视频效率加速

java线程的状态有哪些

风涛吖_1780

风涛吖_1780

发布时间:2025-12-25 15:35:13

|

238人浏览过

|

来源于php中文网

原创

Java线程有六种状态:NEW(新建)、RUNNABLE(可运行)、BLOCKED(阻塞)、WAITING(无限期等待)、TIMED_WAITING(限期等待)、TERMINATED(终止),分别对应线程生命周期各阶段,反映JVM对调度、锁竞争与等待的精细管理。

java线程的状态有哪些

Java线程共有六种状态,定义在 java.lang.Thread.State 枚举中,可通过 Thread.getState() 获取。这些状态反映了线程在其生命周期中的执行情况,不是简单的运行/停止二分,而是体现JVM对线程调度和资源等待的精细管理。

NEW(新建)

线程已被创建但尚未调用 start() 方法。此时线程对象已存在,但还未被JVM调度,不占用CPU,也不参与任何同步操作。

  • 调用 new Thread(...) 后即进入此状态
  • 一旦调用 start(),立即离开 NEW,进入 RUNNABLE
  • 注意:不能对 NEW 状态的线程调用 join() 或 interrupt()(会抛 IllegalThreadStateException)

RUNNABLE(可运行)

这是最容易误解的状态——它不表示“正在运行”,而是“可以运行”:包括正在JVM中执行(OS线程处于running状态),也包括就绪等待CPU调度(OS线程处于ready状态)。I/O等待、sleep、wait等都不在此状态。

  • 调用 start() 后首先进入 RUNNABLE
  • 执行 Thread.sleep(0)、yield() 后仍为 RUNNABLE(只是主动让出CPU)
  • 同步块中成功获取锁后,从 BLOCKED 回到 RUNNABLE;调用 wait() 则离开 RUNNABLE

BLOCKED(阻塞)

线程正等待获取一个监视器锁(monitor lock),以进入 synchronized 方法或代码块。仅当有其他线程持有该锁且未释放时发生。

立即学习“Java免费学习笔记(深入)”;

Comprehensive Three.js 3D graphics reference
Comprehensive Three.js 3D graphics reference

详细的 Three.js 3D 图形参考,涵盖场景设置、相机、几何体、材质、光照、动画、控制器、加载器、数学工具和调试。

下载
  • 典型场景:多个线程竞争同一把synchronized锁
  • 与 WAITING/TIMED_WAITING 的关键区别:BLOCKED 是“等锁”,其余是“等通知”或“等时间”
  • 一旦获得锁,立刻回到 RUNNABLE

WAITING(无限期等待)

线程因调用某些方法而无限期挂起,直到其他线程显式唤醒它(如 notify() 或 interrupt())。

  • 常见触发方法:Object.wait()(无参)、Thread.join()(无参)、LockSupport.park()
  • 不会响应超时,也不会自动醒来,必须靠外部干预
  • 被中断时抛 InterruptedException 并退出 WAITING

TIMED_WAITING(限期等待)

线程在指定时间内等待,时间一到自动恢复(无需其他线程唤醒)。

  • 常见触发方法:Thread.sleep(millis)、Object.wait(timeout)、Thread.join(millis)、LockSupport.parkNanos() 等
  • 超时结束或被中断都会导致线程离开该状态
  • 注意:sleep() 不释放锁,wait() 会释放锁

TERMINATED(终止)

线程已执行完毕(run() 方法正常返回)或因未捕获异常而结束。此后不能再启动(调用 start() 会抛异常)。

  • 线程生命周期的终点,不可逆
  • 可通过 isAlive() 判断是否已终止(返回 false)
  • 即使线程对象还被引用,状态也不会再变

基本上就这些。理解状态转换的关键在于区分“等CPU”(RUNNABLE)、“等锁”(BLOCKED)、“等信号”(WAITING/TIMED_WAITING)和“已结束”(TERMINATED)。实际排查问题时,配合线程dump(如 jstack)看状态,能快速定位锁争用、死锁或长时间挂起等问题。

相关文章

java速学教程(入门到精通)
java速学教程(入门到精通)

java怎么学习?java怎么入门?java在哪学?java怎么学才快?不用担心,这里为大家提供了java速学教程(入门到精通),有需要的小伙伴保存下载就能学习啦!

下载

相关标签:

本站声明:本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系admin@php.cn

热门AI工具

更多
WorkBuddy

一款AI办公效率工具,主要用于腾讯云推出的AI原生桌面智能体工作台,适合需要提升相关任务效率的用户。

PixPix
PixPix Hot

PixPix是一款面向电商视觉生产的AI商品图生成工具。

PixTV
PixTV Hot

PixTV是一款面向AIGC内容创作的AI视频生成工具。

豆包大模型

豆包大模型是一款由字节跳动推出的企业级大语言模型服务平台。

二狗PPT
二狗PPT Hot

一款AI演示文稿工具,主要用于专为中式职场打造的AI PPT生成工具,适合需要提升相关任务效率的用户。

蛙蛙写作

一款AI论文写作工具,主要用于超级AI智能写作助手,适合需要提升相关任务效率的用户。

DeepSeek

DeepSeek是一款面向对话、写作、编程和推理场景的AI大模型工具。

Atoms
Atoms Hot

Atoms是一款AI智能体工具,第一支自动构建真实业务的 AI 团队。

讯飞智作

讯飞智作是一款AI视频创作工具,AI文本配音工具,数字人课程、营销视频制作。

相关专题

更多
线程和进程的区别
线程和进程的区别

线程和进程的区别:线程是进程的一部分,用于实现并发和并行操作,而线程共享进程的资源,通信更方便快捷,切换开销较小。本专题为大家提供线程和进程区别相关的各种文章、以及下载和课程。

3618

2023.08.10

Java 并发编程高级实践
Java 并发编程高级实践

本专题深入讲解 Java 在高并发开发中的核心技术,涵盖线程模型、Thread 与 Runnable、Lock 与 synchronized、原子类、并发容器、线程池(Executor 框架)、阻塞队列、并发工具类(CountDownLatch、Semaphore)、以及高并发系统设计中的关键策略。通过实战案例帮助学习者全面掌握构建高性能并发应用的工程能力。

523

2025.12.01

Buffalo框架数据库开发全教程
Buffalo框架数据库开发全教程

本专题围绕Buffalo框架数据库开发,讲解database.yml多环境配置、soda与fizz迁移生成回滚、模型结构体标签、增删改查与条件查询、一对多与多对多关联、数据校验、回调钩子、事务处理及原生SQL执行能力。

200

2026.09.23

Buffalo框架路由与请求处理实操指南
Buffalo框架路由与请求处理实操指南

本专题讲解Buffalo框架路由与请求处理机制,涵盖路由注册与分组、资源路由、Handler编写规范、Context上下文方法、参数绑定、中间件编写挂载、Session与Cookie读写、Flash消息及错误页面定制方法。

100

2026.09.23

Buffalo框架零基础入门教程
Buffalo框架零基础入门教程

本专题整理Buffalo框架入门内容,涵盖Go环境准备、buffalo CLI安装、新项目生成、目录结构说明、dev热加载启动、数据库连接配置与常见报错排查,帮助新手按约定优于配置的思路跑通第一个Buffalo框架应用。

80

2026.09.23

Conan创建软件包配方指南
Conan创建软件包配方指南

本专题介绍通过conanfile.py创建软件包的方法,讲解包名、版本、依赖和构建设置等基础信息,以及source、build、package、package_info等常用方法的作用及编写思路。

60

2026.09.22

Conan二进制包配置指南
Conan二进制包配置指南

本专题介绍Conan根据操作系统、编译器、架构和构建类型生成二进制包的方法,讲解Profile、Settings、Options及Package ID的作用,帮助管理不同平台和编译环境下的包版本。

60

2026.09.22

Conan私有仓库搭建教程
Conan私有仓库搭建教程

本专题系统的讲解Conan私有仓库的搭建流程,涵盖仓库服务部署、存储目录配置、用户认证、权限划分和远程地址添加,并介绍内部C++依赖包的上传、下载及版本维护方法。

60

2026.09.22

loomy官网入口地址合集
loomy官网入口地址合集

本专题汇总了 Loomy 桌面 AI 助理的官方入口地址合集及使用指南。提供 macOS 与 Windows 客户端下载 。Loomy 是讯飞推出的桌面级 AI 工作搭子,支持文件整理、数据分析、网页操作及通过飞书/钉钉远程操控电脑,助你高效完成本地办公任务 。

60

2026.09.22

热门下载

更多
网站特效
/
网站源码
/
网站素材
/
前端模板

精品课程

更多
相关推荐
/
热门推荐
/
最新课程
dev.java 官方:Learn Java
dev.java 官方:Learn Java

共0课时 | 0人学习

Java JDBC数据库连接官方教程
Java JDBC数据库连接官方教程

共0课时 | 0人学习

关于我们 免责申明 举报中心 意见反馈 讲师合作 广告合作 最新更新
php中文网:公益在线php培训,帮助PHP学习者快速成长!
关注服务号
PHP中文网订阅号
每天精选资源文章推送

Copyright 2014-2026 https://www.php.cn/ All Rights Reserved | php.cn