双非本科准备秋招(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:线程代码结束。
相关推荐
一条泥憨鱼5 小时前
拦截器与过滤器:一次请求穿过 Spring 时,会先经过谁呢
java·开发语言·后端·spring
Shaoshing5 小时前
二分模板(左右查询)
java·算法·二分
小七在进步5 小时前
C++内存管理:new/delete vs malloc/free深度解析
android·java·c++
yuniko-n5 小时前
【JUC】公平锁与非公平锁
java
郑州光合科技余经理5 小时前
本地生活服务系统:预约状态和进度通知接口怎么拆
java·开发语言·前端·javascript·后端·php·生活
靠沿5 小时前
MySQL数据库基础——事务
java·数据库·mysql
Joy T11 小时前
Agent 确定性上下文设计:从 Prompt 参数注入到能力分层
java·开发语言·微服务·架构·prompt·agent context
m0_5873830014 小时前
广州 24 小时自助健身房解决方案技术实现与实战指南
java·spring·小程序·架构·需求分析
·云扬·14 小时前
Prompt 工程与安全:从 System 设计到注入防御
java·人工智能·安全·ai·prompt
代码不停15 小时前
自动化测试(java)
java·开发语言·selenium·自动化