双非本科准备秋招(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:线程代码结束。
相关推荐
小莫分享6 分钟前
github 镜像节点
java
链上Sniper15 分钟前
智能合约状态快照技术:实现 EVM 状态的快速同步与回滚
java·大数据·linux·运维·web3·区块链·智能合约
缘来是庄1 小时前
设计模式之建造者模式
java·设计模式·建造者模式
小湘西1 小时前
Apache HttpClient 的请求模型和 I/O 类型
java·http·apache
沃夫上校1 小时前
Feign调Post接口异常:Incomplete output stream
java·后端·微服务
q567315231 小时前
Java Selenium反爬虫技术方案
java·爬虫·selenium
张小洛1 小时前
Spring IOC容器核心阶段解密:★Bean实例化全流程深度剖析★
java·后端·spring·ioc容器·bean实例化
不良手残2 小时前
IDEA类和方法注释模板设置-保姆教程
java·开发语言
GoodStudyAndDayDayUp2 小时前
调用海康API预览视频
java·海康
李迟2 小时前
在Linux服务器上使用kvm创建虚拟机
java·linux·服务器