双非本科准备秋招(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:线程代码结束。
相关推荐
凭君语未可2 分钟前
从静态代理走向动态代理:理解 JDK 动态代理的本质
java·开发语言
黑风风7 分钟前
在 Windows 上设置 MAVEN_HOME 环境变量(完整指南)
java·windows·maven
Rsun045519 分钟前
15、Java 观察者模式从入门到实战
java·python·模板方法模式
珹洺11 分钟前
Java-Spring入门指南(二十三)俩万字超详细讲解利用IDEA手把手教你实现SSM(Spring + SpringMVC + MyBatis)整合,并构建第一个SSM基础系统
java·spring·intellij-idea
yaaakaaang12 分钟前
十九、观察者模式
java·观察者模式
小碗羊肉13 分钟前
【从零开始学Java | 第三十八篇】序列化流(Object Stream)
java·开发语言
亚历克斯神13 分钟前
Java 23 虚拟线程进阶:深度探索与实战
java·spring·微服务
想带你从多云到转晴15 分钟前
02、JAVAEE--多线程(二)
java·开发语言·javaee
AIoT科技物语16 分钟前
免费开源!50+算法,Java基于YOLO框架的视频AI识别算法平台,适配低空无人机巡检、摄像头安防场景
java·人工智能·算法·yolo·开源
黑客大白19 分钟前
IDEA安装教程配置java环境(超详细)_idea配置java,零基础入门到精通,收藏这篇就够了
java·ide·intellij-idea