双非本科准备秋招(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:线程代码结束。
相关推荐
Moe48813 小时前
Spring AI Advisors:从链式增强到递归顾问
java·后端
敖正炀13 小时前
ReentrantReadWriteLock、ReentrantLock、synchronized 对比
java
cike_y14 小时前
Java反序列化漏洞-Shiro721流程分析
java·反序列化·shiro框架
极创信息14 小时前
信创系统认证服务怎么做?从适配到验收全流程指南
java·大数据·运维·tomcat·健康医疗
格鸰爱童话14 小时前
向AI学习项目技能(六)
java·人工智能·spring boot·python·学习
白宇横流学长14 小时前
停车场管理系统的设计与实现
java
Flittly14 小时前
【SpringAIAlibaba新手村系列】(18)Agent 智能体与今日菜单应用
java·spring boot·agent
木井巳15 小时前
【递归算法】目标和
java·算法·leetcode·决策树·深度优先
亦暖筑序15 小时前
手写 Spring AI Agent:让大模型自主规划任务,ReAct 模式全流程拆解
java·人工智能·spring
敖正炀15 小时前
ReentrantLock 与 synchronized对比
java