news 2026/6/17 20:57:53

线程的状态

作者头像

张小明

前端开发工程师

1.2k 24
文章封面图
线程的状态

[本节目标]

  1. 线程状态一共有几种
  2. 每种状态表示的含义
  3. 状态之间的切换条件

1.观察线程的所有状态

  • NEW: 安排了⼯作, 还未开始⾏动new了Thread对象,还没start
  • RUNNABLE: 可⼯作的. ⼜可以分成正在⼯作中和即将开始⼯作.

就绪:1)线程正在CPU上执行 2)线程随时可以去CPU上执行

  • BLOCKED: 这⼏个都表⽰排队等着其他事情也是一种阻塞,比较特殊,由于锁导致的阻塞。
  • WAITING: 这⼏个都表示排队等着其他事情死等,没有超时时间的阻塞等待。
  • TIMED_WAITING: 这⼏个都表⽰排队等着其他事情。指定时间阻塞,线程阻塞(不参与CPU调度,不继续执行了),但是阻塞的时间是有上限的。
  • TERMINATED: ⼯作完成了.内核中的线程已经结束了,但是Thread对象还在
public class Demo1 { public static void main(String[] args) throws InterruptedException { Thread t=new Thread(()->{ while (true){ //啥都不做 try { Thread.sleep(1000); } catch (InterruptedException e) { throw new RuntimeException(e); } } }); System.out.println(t.getState()); t.start(); Thread.sleep(1000); System.out.println(t.getState()); } }

另外,join(时间)也是会进入到TIME_WAINTING状态

2.线程状态应用的场景

调试程序(找bug),多线程的程序中,理解线程状态,是帮助我们调试程序的关键

比如,发现代码中某个逻辑好像卡死了,明明调用了,没有执行/没有执行完

  1. jconsole/其他工具,查看当前进程中的所有线程,找到对应逻辑的线程是谁
  2. 看线程的状态是啥:看到TIMED_WAITING/WAINTING,怀疑是不是代码中某个方法产生阻塞,没有被及时唤醒;看到BLOCKED,怀疑是不是代码中出现死锁;看到RUNNABLE,线程本身没问题,考虑逻辑上某些条件没有预期出发之类的
  3. 再看线程具体的调用栈(尤其是阻塞的状态,线程代码阻塞在哪一行了……)

3.线程状态和状态转移的意义

版权声明: 本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若内容造成侵权/违法违规/事实不符,请联系邮箱:809451989@qq.com进行投诉反馈,一经查实,立即删除!
网站建设 2026/6/17 20:50:57

3个OBS高级遮罩技巧:让你的直播画面秒变专业级

3个OBS高级遮罩技巧:让你的直播画面秒变专业级 【免费下载链接】obs-advanced-masks Advanced Masking Plugin for OBS 项目地址: https://gitcode.com/gh_mirrors/ob/obs-advanced-masks 你知道吗?90%的普通主播还在使用单调的矩形画面&#xff…

作者头像 李华
网站建设 2026/6/17 20:43:55

Claude Opus文献精读:三层穿透式学术分析实战指南

1. 项目概述:为什么说Claude Opus在文献处理上确实“太牛了”“Claude Opus读文献太牛了(附教程)!”——这句话不是营销话术,而是我连续三个月、每天平均处理12篇英文论文(含Nature子刊、NEJM、JAMA、IEEE …

作者头像 李华
网站建设 2026/6/17 20:41:10

broken-link-checker:如何彻底解决网站死链问题的高效方案

broken-link-checker:如何彻底解决网站死链问题的高效方案 【免费下载链接】broken-link-checker Find broken links, missing images, etc within your HTML. 项目地址: https://gitcode.com/gh_mirrors/br/broken-link-checker 你的网站是否经常出现404错误…

作者头像 李华
网站建设 2026/6/17 20:28:29

NXP KE17Z MCU硬件设计实战:从电源时钟到触摸ADC的避坑指南

1. 项目概述如果你正在设计一款基于NXP KE17Z系列MCU的产品,比如一个带触摸屏的智能家电控制面板,或者一个简单的无刷直流电机驱动器,那么这份硬件设计指南就是为你准备的。KE17Z这颗芯片,以其5V宽压供电、高达72MHz的Cortex-M0内…

作者头像 李华
网站建设 2026/6/17 20:27:19

手把手教你搭建一个「参考文献不造假」的 AI 综述写作系统

作为一个写过医学综述、也被 AI 工具坑过的独立开发者,我发现市面上大多数 AI 论文写作工具都有一个致命缺陷:参考文献不可靠。 传统做法的架构缺陷: 用户输入关键词 → 搜索引擎返回标题 → 大模型凭记忆写正文 → 随机分配引用编号 → 标…

作者头像 李华