Java线程(Thread)生命周期的6种状态

2023-11-20

当线程被创建并启动以后,它既不是一启动就进入了执行状态,也不是一直处于执行状态。

在线程的生命周期中, 可能处于不同的状态,java.lang.Thread.State 列举出了这6种线程状态:

线程状态 导致状态发生条件
New(新建) 线程刚被创建,但是并未启动,还没调用start方法。
Runnable(可运行) 线程可以在java虚拟机中运行的状态,可能正在运行自己的代码,也可能没有,这取决于操作系统处理器。
Blocked(锁阻塞) 当一个线程试图获取一个对象锁,而该对象锁被其他线程持有,则该线程进入Blocked状态;当该线程持有锁时,该线程将变成Runnable状态。
Waiting(无限等待) 一个线程在等待另一个线程执行一个(唤醒)动作时,该线程进入Waiting状态。进入这个状态后是不能自动唤醒的,必须等待另一个线程调用notify或者notifyAll方法才能够唤醒。
Timed Waiting(计时等待) 类似Waiting,有几个方法有超时参数,调用它们将进入Timed Waiting状态,这一状态将一直保持到超时期满或接收到唤醒通知。带有超时参数的常用方法有Thread.sleep、Object.wait。
Terminated(被终止) 因run()正常退出而死亡,或者因为没有捕获的异常终止了run()而死亡。
本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系:hwhale#tublm.com(使用前将#替换为@)

Java线程(Thread)生命周期的6种状态 的相关文章

  • 为什么要使用继承? [关闭]

    就目前情况而言 这个问题不太适合我们的问答形式 我们希望答案得到事实 参考资料或专业知识的支持 但这个问题可能会引发辩论 争论 民意调查或扩展讨论 如果您觉得这个问题可以改进并可能重新开放 访问帮助中心 help reopen questi
  • 如何在 Spring MVC 中使用延迟加载

    Spring MVC中如何使用延迟加载 我现在正在使用 eager 但这会使我的应用程序运行速度变慢 这是我的域的一部分 ManyToMany fetch FetchType EAGER JoinTable name NEWS TAG jo
  • IBM WebSphere MQ 2042 错误

    我有以下代码 int openOptions MQC MQOO INQUIRE MQC MQOO FAIL IF QUIESCING MQC MQOO INPUT SHARED 执行时 我收到错误 com ibm mq MQExceptio
  • Android 支持 v4 22.2.0 的 Proguard 配置

    更新 Gradle Android 构建的依赖关系后使用com android support support v4 22 2 0从本地 Maven extras 存储库 在 SDK 内 Proguard 开始抛出这些问题 Warning
  • 与Java混淆覆盖访问级别[重复]

    这个问题在这里已经有答案了 可能的重复 为什么不能降低java子类中方法的可见性 https stackoverflow com questions 1600667 why cant you reduce the visibility of
  • 如何在 spring 中将模型作为重定向属性传递

    redirectModel addAttribute Model model return REDIRECT PREFIX my company organization management manage users 当我通过这个时 我得
  • 如何在生产环境中运行 spring boot 可执行 jar?

    Spring Boot 的首选部署方法是通过内部包含 tomcat 的可执行 jar 文件 它是从一个简单的开始java jar myapp jar 现在 我想将该 jar 部署到 EC2 上的 Linux 服务器上 我是否遗漏了某些内容
  • 将密钥添加到选定的密钥集中

    我正在编写一个 NIO 服务器 并希望响应用户请求 即将一些数据写入通道 Selector selector if selector selectNow 0 if key isReadable SocketChannel channel k
  • 如何将 JMX 绑定到特定接口?

    我目前正在启动我的 Java VMcom sun management jmxremote 属性 以便我可以通过 JConsole 连接到它进行管理和监控 不幸的是 它监听机器上的所有接口 IP 地址 在我们的环境中 经常会出现多个 Jav
  • JSF 2.0 动态属性,无需创建新组件

    如何向未定义这些属性的组件添加新属性而不创建自己的属性 我想做这样的事情
  • 将 AOP 与 OSGI 结合使用的最佳解决方案?

    我正在使用 Equinox 因此 Equinox Aspect 项目似乎是理所当然的 但该项目似乎处于非活动状态 并且只有一页文档 让我最终悬而未决 除了那个项目之外 我没有看到在 OSGI 中使用 AOP 的很多选项 让我知道你们的想法以
  • 编写无 BOM 的 UTF-8

    这段代码 OutputStream out new FileOutputStream new File C file test txt out write A getBytes 和这个 OutputStream out new FileOu
  • 如何从 Java 中的字符串表示形式获取 Locale?

    有没有一种巧妙的方法来获得Locale http java sun com javase 6 docs api java util Locale html来自 Locale 返回的 编程名称 的实例toString 方法 一个明显且丑陋的解
  • JSP:已为此响应调用 getOutputStream()

    我正在使用此代码从 FTP 下载文件 我在 tomcat 日志中遇到异常 如下所示 我能够执行我的任务 但我的日志大小增加了很多 Code if file exists if file canRead IE6 SSL PDF Bug htt
  • java中调用父构造函数

    我有两节课Parent and Child 而Parent有一个需要 3 个参数的构造函数 class Parent public Parent String host String path int port 现在我想要Child构造函数
  • 事务 TransactionImple ActionStatus.ABORTED 已回滚

    我实现了DTO业务从TomEE到JBoss的迁移 我有这个实体 NamedQueries NamedQuery name common plagebusiness plage getAllPlages query SELECT p FROM
  • Android 每个 Activity 中的通用进度条

    我已经修改了解决方案 我可以获得进度条 但进度条永远不会隐藏 这是创建具有相对布局的进度条的类 public class ProgressBarHandler private ProgressBar mProgressBar private
  • 使用 libGDX 写入 Json

    我是 Json 和 libGDX 的新手 但我创建了一个简单的游戏 我想将玩家姓名及其分数存储在 Json 文件中 有没有办法做到这一点 我想创建一个 Json 文件Gdx files localStorage如果它不存在 如果存在 则向其
  • 通过JVMTI识别异常

    我正在使用 JVMTI 为 Java 应用程序编写一个检测工具 我已经看到 JVMTI 检测何时抛出异常以及何时捕获异常http docs oracle com javase 7 docs platform jvmti jvmti html
  • 无法解析类或包“h2”

    我为我的网络应用程序开发后端应用程序 在我的项目 SpringBoot Maven 中 我想添加 h2 数据库 根据网上的教程 添加了以下几行应用程序属性 file server port 8088 spring h2 console en

随机推荐

  • 包的创建、包的命名、包的导入

    包 package 1 分门别类的管理java文件 2 避免文件重名 3 保护包内的文件 包的命名 1 公司域名的到写 部门名称 项目名称 模块名称 部门名可以不写 2 用 作为分隔符 例 com openlab phone employe
  • 数据库选型粗略对比,欢迎补充!!!

    关系型数据库 Oracle SQL Server MySQL PostgreSQL SQLite Oracle 甲骨文开发的商业数据库 不开源 支持所有主流平台 性能好 功能强 稳定性好 安全性好 支持大数据量 比较复杂 收费昂贵 SQL
  • Unity3D小程序部署与开发

    Unity3D目前已经支持微信小程序开发 目前正处于公测阶段 可以参考文档 这样我们只需要在unity本地开发完 一键导出微信小程序工程发布即可 0 下载小程序开发工具与Unity 微信小程序插件 小程序开发工具 wechat devtoo
  • 本地jar上传至私服

    本地jar上传至私服 一 eclipse的maven 打包 安装在本地仓库 二 使用cmd命令行将jar包上传至maven私服 三 一二中已完成 另 将jar包安装在本地仓库 一 eclipse的maven 打包 安装在本地仓库 1 对po
  • logn是以什么为底_一文带你了解算法复杂度O(1),O(n),O(logn),O(nlogn)的含义

    相信很多开发的同伴们在研究算法 排序的时候经常会碰到O 1 O n O logn O nlogn 这些复杂度 看到这里就会有个疑惑 这个O N 到底代表什么呢 首先o 1 o n o logn o nlogn 是用来表示对应算法的时间复杂度
  • 【element中el-cascader使用及自定义key名】

    element中el cascader使用及自定义key名 下面展示一些 内联代码片 el cascader的通过改变值时 获取当前选中数据 根据接口返回数据 灵活定义key名 template中的应用 options为数据 1 props
  • mermaid

    Butterfly在不久的未来能支持mermaid https butterfly js org posts 4aa8abbe mermaid
  • Qt开发记录2——功能开发——按钮-打开缓存(打开本地文件夹)

    链接1 qt程序实现打开文件夹 链接2 QT5 利用QDesktopServices打开本地文件或文件夹 目录 打开缓存 打开本地文件夹 在UI界面拖拽一个按钮控件 转到槽 跳转到槽函数编写代码 打开缓存 打开本地文件夹 需求 选中扫描到本
  • dns提供商主机名_什么是FQDN?它和主机名有区别吗?

    请关注本头条号 每天坚持更新原创干货技术文章 如需学习视频 请在微信搜索公众号 智传网优 直接开始自助视频学习 1 前言 本文主要讲解什么是FQDN 什么是FQDN 2 FQDN的名词解释 完全限定域名fully qualified dom
  • (Python)计算平均值

    计算平均值 问题描述 从键盘输入三个整数 分别存入x y z三个整型变量中 计算并输出三个数的和以及平均值 输入形式 从键盘输入三个整数 整数之间以空格隔开 输出形式 在屏幕上分两行显示结果 第一行为三个数的和 整数形式输出 第二行为三个数
  • 数据库设计范式的理解

    文章来自 http www ccvita com 418 html 前言 为什么要写这篇文章呢 从去年年底开始 就和很多做技术的朋友交流过 从数据库设计到数据库架构各个方面的内容 有一些朋友执着于ORM 执着于所谓的数据库设计 却忘记了一切
  • 惠普服务器硬盘指示灯不亮或显示蓝色

    通过惠普服务器指示灯我们可以了解服务器当前的运行状态 指示灯不同的颜色和闪烁频率都代表不同的意义 那么惠普服务器硬盘指示灯不亮是什么原因导致的呢 如果已经在系统中安装了一个或多个硬盘 请检查下列各项 1 硬盘的电源线与信号线安装是否正确 2
  • 数仓面试总结

    2021年5月开始找工作 面试了若干个数仓的岗位 面的差不多也就2个 总结下大致的面试内容 一 字节视频面 上海的一个部门 视频面挂 小伙伴内推的 这个5月份面的 大概视频面试了一个小时 主要面试内容 1 问了mapreduce的具体执行过
  • MySQL减一年的日期函数_MySQL 日期加减函数汇总

    1 addtime 为日期加上指定秒数select addtime now 1 加1秒 2 adddate 有两种用法 第二个参数直接填数字的话是为日期加上指定天数 填interval的话是为日期加上指定的interval时间select
  • AI 预测世界杯比赛结果,惊掉下巴

    哈喽 大家好 今天看到Kaggle上有一个预测世界杯比赛结果的项目 截至目前 4 场比赛预测结果全中 今天把源码研究了一下 做了中文注释 给大家分享下 文章目录 技术提升 1 获取数据集 2 特征工程 3 建模 4 预测 技术提升 本文由技
  • 一文搞懂ARP协议

    更多文章请关注我的个人微信公众号 极客熊猫 欢迎扫码关注 什么是ARP ARP是Address Resolution Protocol的首字母缩写 即地址解析协议 如果一台主机要将一个帧发送到另一台主机 只知道这台主机的IP地址是不够的 还
  • hosts文件有多余条目导致dbconsole配置不成功

    1 修改密码alter user system identified by oracle alter user sys identified by oracle alter user dbsnmp identified by oracle
  • 【笔记】 感受野与权值共享 摄像头标定 相机坐标与世界坐标

    1 卷积神经网络的局部感受野 卷积神经网络的神经元之间的连接模式类似于大脑视觉皮层组织 个体皮层神经元仅在被称为感受野的视野受限区域中对刺激做出反应 局部感受野就是卷积神经网络每一层输出的特征图 Feature Map 上的像素点在原始图像
  • ros安装qt以及编译ros功能包

    2 添加qt到环境变量 sudo nano usr bin qtcreator bin sh export QT HOME home kexue Qt5 9 9 Tools QtCreator bin QT HOME qtcreator s
  • Java线程(Thread)生命周期的6种状态

    当线程被创建并启动以后 它既不是一启动就进入了执行状态 也不是一直处于执行状态 在线程的生命周期中 可能处于不同的状态 java lang Thread State 列举出了这6种线程状态 线程状态 导致状态发生条件 New 新建 线程刚被