双非本科准备秋招(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:线程代码结束。
相关推荐
吴声子夜歌7 分钟前
Guava——并发(一)
java·guava
天空属于哈夫克310 分钟前
企业微信API:企业微信如何实现自动化运营?
java·自动化·企业微信
lhldsg20 分钟前
相册印刷实战指南:从设计规范到系统落地全流程解析
java·小程序·架构·设计规范
草青工作室22 分钟前
java-不携带Token也能“打“自己的接口:一个绕开网关鉴权、用 URL 直接调度 SpringMVC 方法的轻量级定时任务方案
java·开发语言
霸道流氓气质28 分钟前
Spring AI提示词模板与动态变量替换
java·python·spring
Object_SC31 分钟前
java 中的泛型
java
s_w.h43 分钟前
【 linux 】线程互斥与同步
java·linux·服务器·开发语言
学长毕业设计44 分钟前
基于SpringBoot的校园二手物品交易系统(源码+文档+讲解视频)
java·spring boot·后端
观无1 小时前
若依AOP
java
是2的10次方啊1 小时前
日志不是越多越好:开发优化、常见坑与线上排查命令
java