Java 线程的六种状态及其简易转换

news2025/7/9 8:18:32

1.Java中线程的状态分为六种

NEW:初始状态,线程被创建,但是还没有调用start()方法。
RUNNABLE:运行状态,Java线程将操作系统中的就绪和运行两种状态笼统地称作“运行中”。
BLOCKED:阻塞状态,表示线程阻塞于锁。
WAITING:等待状态,表示线程进入等待状态,进入该状态表示当前线程需要等待其他线程做出一些特定动作(通知或中断)
TIMED_WAITING:超时等待状态,该状态不同于 WAITING,它是可以在指定的时间自行返回的。
TERMINATED:终止状态,表示当前线程已经执行完毕。

2.在Thread.State中的定义如下

    public enum State {

        NEW,


        RUNNABLE,


        BLOCKED,


        WAITING,


        TIMED_WAITING,


        TERMINATED;
    }

3.六种状态对应的含义

一、新建状态(NEW)

当我们使用关键字new创建了一个线程对象时,这个线程就处于新建状态。

二、运行状态(RUNNABLE)

操作系统中的就绪和运行两种状态,在Java中统称为RUNNABLE。

就绪状态(READY):
当线程对象调用了start()方法之后,线程处于就绪状态,就绪意味着该线程可以执行,但具体啥时候执行将取决于JVM里线程调度器的调度。PS:1.不允许对一个线程多次使用start。2.线程执行完成之后,不能试图用start将其唤醒。

运行状态(RUNNING):
处于就绪状态的线程获得了CPU之后,真正开始执行run()方法的线程执行体时,意味着该线程就已经处于运行状态。需要注意的是,对于单处理器,一个时刻只能有一个线程处于运行状态。
对于抢占式策略的系统来说,系统会给每个线程一小段时间处理各自的任务。时间用完之后,系统负责夺回线程占用的资源。下一段时间里,系统会根据一定规则,再次进行调度。

三、阻塞状态(BLOCKED)

阻塞状态表示线程正等待监视器锁,而陷入的状态。例如:线程等待进入synchronized同步方法 / 线程等待进入synchronized同步代码块都会使线程阻塞,一但线程拿到了锁,他就会进入就绪状态。

四、等待状态(WAITING)

进入该状态表示当前线程需要等待其他线程做出一些的特定的动作(通知或中断)。需要其他线程使用notify()和notifyAll()方法唤醒。

五、超时等待状态(TIMED_WAITING)

区别于WAITING,它可以在指定的时间自行返回。即它不需要其他线程唤醒,在指定时间结束之后,它会自动变为就绪状态。

六、终止状态(TERMINATED)

即线程的终止,表示线程已经执行完毕。前面已经说了,已经消亡的线程不能通过start再次唤醒。例如:run()和call()线程执行体中顺利执行完毕,线程正常终止 / 线程抛出一个没有捕获的Exception或Error。
需要注意的是:主线成和子线程互不影响,子线程并不会因为主线程结束就结束。

4.简易转化图

在这里插入图片描述

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.coloradmin.cn/o/109202.html

如若内容造成侵权/违法违规/事实不符,请联系多彩编程网进行投诉反馈,一经查实,立即删除!

相关文章

IJCAI-2022 多级发射方法的脉冲神经网络

原文链接:CSDN-脉冲神经网络(SNN)论文阅读(四)-----IJCAI-2022 多级发射方法的脉冲神经网络 Multi-Level Firing with Spiking DS-ResNet: Enabling Better and Deeper Directly-Trained Spiking Neural Networks目录说…

SAP UI5 Smart Table 和 Smart Filter Bar 的联合使用方法介绍试读版

本教程第 147 个步骤,我们介绍了 SAP UI5 Smart Table 控件的用法: SAP UI5 应用开发教程之一百四十七 - SAP UI5 SmartTable 控件的使用介绍 如下图所示: 本步骤我们在 Smart Table 本身的基础上再进一步,学习如何将 Smart Tab…

占道摆摊经营监控报警系统 yolov5

占道摆摊经营监控报警系统通过Python基于yolov5深度学习网络模型,对城市道路区域实时检测,当yolov5模型检测到有流动摊点摆摊违规经营时,立即抓拍告警。Yolo模型采用预定义预测区域的方法来完成目标检测,具体而言是将原始图像划分…

[java]-JDBC

JDBC 是 Java 连接数据库的一种方式,它是一种 Java API,可以用于连接数据库,并且可以访问数据库中的数据。 JDBC 原理 JDBC 是接口,驱动是接口的实现,没有驱动将无法完成数据库连接,从而不能操作数据库!每…

USB TO SPI(上海同旺电子)调试器调试MCP4822

所需设备: 1、USB TO SPI(上海同旺电子); 2、MCP4822:双通道12 位电压输出DAC; 特性 • MCP4802:双通道8 位电压输出DAC • MCP4812:双通道10 位电压输出DAC • MCP4822:双通道12 位电压输出DAC • 轨对…

React18:创建React项目(自动)

文章目录使用步骤项目目录结构Node_modulesPublicSrcPackage.Json总结使用步骤 打开命令行进入到项目所在目录使用如下命令:npx create-react-app 项目名 注意:项目名不能带大写字符 项目目录结构 项目目录结构如下: react-app├─ no…

网络实验之RIPV2协议(二)

一、RIPV2协议和实验简介 RIP-2是一种无类别路由协议(Classless Routing Protocol),支持路由标记,在路由策略中可根据路由标记对路由进行灵活的控制。报文中携带掩码信息,支持路由聚合和CIDR(Classless Int…

MMIM(2021 EMNLP)分级互信息最大化

论文题目(Title):Improving Multimodal Fusion with Hierarchical Mutual Information Maximization for Multimodal Sentiment Analysis 研究问题(Question):提出了一个名为 (MMIM),它在层次上…

Centos7下安装Nginx及配置SSL

文章目录1.官网下载Nginx2.安装依赖包3.安装Nginx4.启动Nginx5.防火墙放开端口6.Nginx的SSL模块安装7.SSL证书准备8.Nginx配置SSL1.官网下载Nginx ​ 去官网下载需要的nginx压缩包,地址:http://nginx.org/en/download.html,此处下载最新稳定…

DFS——剪枝

文章目录概述优化搜索顺序排除等效冗余可行性剪枝最优性剪枝例题小猫爬山木棒总结概述 优化搜索顺序 不同的搜索顺序会产生不同的搜索树形态,与可行性剪枝结合,去除非法状态,按照一定顺序可使规模大幅度减小。 例: 给定一个无重复…

JavaSE第6篇:面向对象上

一、面向对象 1、面向对象:人关注对象、人关注具体事物信息 2、对象: 只要是客观存在的事物皆为对象 面向对象程序设计的重点是类的设计 设计类就是设计类的成员 思考:人把大象装进冰箱 ? 面向过程POP思想:强调的是过程(动…

Web前端开发入门学习分享

Web前端开发入门学习分享 1&#xff1a;如何开始学习Web前端 首先你需要学习html的各个标签&#xff0c;掌握其用法和规范&#xff0c;明白其作用。 开始学习css的使用&#xff0c;你先学习在html页面中为标签增加css样式&#xff0c;其次是将css写在网页的<head></…

【记录】chmod修改组属性失效问题

记录一次chmod命令修改文件夹失效问题。 1.问题描述 有一个普通用户的目录test权限是750&#xff0c;使用chmod将文件权限修改成770发现同组的其他用户无法在该目录创建文件。 2.问题原因 给目录设置acl权限导致chmod在修改文件权限时失效【其实不是失效了】 调研发现&#…

超1.58亿人将“血拼”,超级星期六购物节即将到来

超1.58亿人将“血拼”&#xff01;美国超级星期六购物节即将到来&#xff01;亚马逊出手整治“远仓近送”&#xff01;据美国零售联合会的年度消费者调查结果显示&#xff0c;在今年圣诞节前的最后一个星期六&#xff08;即超级星期六&#xff09;&#xff0c;将有1.58亿人发生…

集成滤波器的5G大规模天线的S参数测试方法

【摘 要】集成滤波器的5G大规模天线由于每个通道包含了一组滤波器,使得5G大规模天线的通道之间的幅度和相位一致性指标变得很差,进一步地,使得获取除滤波器以外的纯通道之间的幅度和相位的一致性指标变得非常困难。对集成滤波器的5G大规模天线的测试方法进行了原理分析和实…

postgresql及wal2json插件安装

1、安装postgres 安装文档见&#xff1a;https://www.postgresql.org/download/linux/redhat/ 我这里是centos7系统&#xff0c;选择安装postgresql11 # Install the repository RPM: sudo yum install -y https://download.postgresql.org/pub/repos/yum/reporpms/EL-7-x86_…

有什么办法把录音转成文字?这几种方法一看就会

大家在平时工作中是否经常会遇到录音转文字的时候&#xff0c;如果我们一边听一边记的话&#xff0c;有可能会漏掉一些内容&#xff0c;然后就需要暂停或者重听&#xff0c;这样既费时费力还会降低我们的工作效率。这个时候我想应该会有小伙伴觉得&#xff0c;要是录音能直接变…

高通 OpenXR SDK 使用指南(1)

高通 OpenXR SDK 使用指南&#xff08;1&#xff09;1 OpenXR 概述1.1 加载器1.2 运行时1.3 API层1.4 合成器1 OpenXR 概述 OpenXR 是一个免版税的框架&#xff0c;可以访问 AR、VR 和 MR 平台和设备。 在 OpenXR 之前&#xff0c;不同的供应商构建了自己的专有 SDK 来支持 XR…

四、Jetson Xavier Nx内置16G emmc刷机、CUDA、SSD启动

1 刷机 注意JETSON Xavier NX DEV KIT 搭配的是官方16eMMC版本的Jetson Xavier NX 16GB/8GB 核心板&#xff0c;不带SD卡卡槽。因此烧录系统需要用到ubuntu 18.04主机&#xff0c;使用SDK Manager工具烧录。 烧录环境&#xff1a; Ubuntu18.04 主机 &#xff08;虚拟机也可以&…

CS5518芯片规格书|CS5518设计参数|MIPI转LVDS转换方案芯片设计规格书

CS5518是一个MIPI DSI输入、LVDS输出转换芯片。MIPI DSI支持多达4个局域网&#xff0c;每个通道以1Gbps的速率运行。LVDS支持18位或24位像素&#xff0c;通过VESA或JEIDA格式。它只能使用单个1.8V电源&#xff0c;以节省成本并优化电路板空间。 CS5518适用于多个细分市场和显…