双非本科准备秋招(15.1)—— 线程状态

线程状态按照不同的角度可分为五种和六种。

五种状态:

在学校学的操作系统中讲过进程的五种状态,从操作系统的层面来看,线程有五大状态,下面是经典的牛头图。

  • 起始态:语言层面创建了线程对象,还没有和操作系统线程关联。
  • 就绪态:也叫可运行状态,线程已经与操作系统线程关联,可以由CPU调度执行。
  • 运行态:获取了CPU的时间片,在CPU上运行。
  • 阻塞态:这时该线程不会用到CPU,比如调用了阻塞API(BIO读写文件),这时进入阻塞。
  • 终止态:线程执行完毕,生命周期结束

六种状态:

从Java API层面来看,线程被分为六种状态。

  • NEW:线程刚被创建,没有调用start()方法
  • RUNNABLE:调用了start()方法之后,这里的RUNNABLE涵盖了操作系统层面的就绪态、运行态、阻塞态(由BIO导致的线程阻塞,java中无法区分)。
  • BLOCKED、WAITING、TIMED_WAITING:这都是Java对阻塞状态的细分。timed_waiting有时间的等待,对应的sleep方法;waiting是等待,对应join方法。
  • TERMINATED:线程代码结束。
相关推荐
MY_TEUCK4 小时前
Sealos 平台部署实战指南:结合 Cursor 与版本发布流程
java·人工智能·学习·aigc
我爱cope5 小时前
【从0开始学设计模式-10| 装饰模式】
java·开发语言·设计模式
朝新_5 小时前
【Spring AI 】图像与语音模型实战
java·人工智能·spring
RH2312116 小时前
2026.4.16Linux 管道
java·linux·服务器
zmsofts6 小时前
java面试必问13:MyBatis 一级缓存、二级缓存:从原理到脏数据,一篇讲透
java·面试·mybatis
aq55356008 小时前
编程语言三巨头:汇编、C++与PHP大比拼
java·开发语言
我是无敌小恐龙8 小时前
Java SE 零基础入门Day01 超详细笔记(开发前言+环境搭建+基础语法)
java·开发语言·人工智能·opencv·spring·机器学习
心态与习惯9 小时前
Julia 初探,及与 C++,Java,Python 的比较
java·c++·python·julia·比较
一叶飘零_sweeeet9 小时前
优秀文章合集
java
zopple9 小时前
ThinkPHP5.x与3.x核心差异解析
java·python·php