线程的状态(java)

“苦?     何止是苦~~~~~”

本期内容来分享一下线程状态相关的知识哦!!!

对于进程来说,进程是有两种状态的。

一种是就绪状态:正在CPU上执行,或者随时可以去CPU上执行的。

另一种是阻塞状态:暂时不能去CPU上执行的。

那么对于线程来说,线程也是有状态的,而且更加详细的分了六中状态,那么接下来,我们一起来了分别了解这六中状态吧。

状态一:新建(New)

对于NEW状态来说,虽然当前创建出了一个thread对象,但是内核的线程还没有(还没有调用start方法),没有在内核中真正创建出thread对象的(只有在调用start()方法之后,内核才会真正创建出线程)。

状态二:可运行(RUNNABLE)

该状态表示线程正在CPU上运行,或者随时可以去CPU上运行。

状态三:阻塞(Blocked)

该状态是由线程之间由于锁竞争锁引起的阻塞状态。

public class Demo3 {private static Object locker1 = new Object();public static void main(String[] args) throws InterruptedException {Thread t1 = new Thread(() -> {synchronized(locker1) {while(true) {}}},"t1");Thread t2 = new Thread(() -> {synchronized (locker1) {System.out.println("------");}},"t2");t1.start();//确保t1执行sleep(100);t2.start();}
}

 这个我们可以借助idk下的一个工具进行查看。首先先找到jdk所在的路径,然后点到bin目录下面去,然后找到jconsole.exe,运行jconsole,(在运行jconsole时,确保你的程序在运行着),然后选择本地进程里面的,你所运行着的代码文件名。之后点击连接,然后点击不安全连接,之后再点到线程那一栏,找到你的线程的名称,点进去就可以看见它的信息了。

 

 

那么上面我们看到,线程t2是一个BLOCKED状态,t1线程正在运行着,就是RUNNABLE。

那么这个工具也是我们之后如果遇到线程之类的一些问题,可以利用这个工具来查看线程的状态,这样便于我们检查或者排除一些问题。

 状态四:等待(WAITING)

没有超时时间的等待,由join/wait等引起的一种状态。

状态五: 定时等待(TIME_WAITING)

有超时时间的等待,比如sleep或者join(带参数版本)

状态六:终止(TERMINATED)

当前Thread对象虽然还在,但是内核的线程已经销毁了(线程已经结束了)

 下面假设一堆人去银行办理业务为例,有一个更清晰的了解:

相信大家看见这个图之后,有了多一些了解,了解线程的这六种状态,对于后续的多线程编程会有一定帮助的。

"感谢你阅读这篇文章!如果你觉得这篇文章对你有帮助,请分享给你的朋友。同时,欢迎在下方留言,告诉我你的想法或提出任何问题。"

好了,本期节目就到这里了,我们下期节目不见不散。

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

如若内容造成侵权/违法违规/事实不符,请联系长河编程网进行投诉反馈email:809451989@qq.com,一经查实,立即删除!

相关文章

PDF 全文多语言 AI 摘要 API 数据接口

PDF 全文多语言 AI 摘要 API 数据接口 PDF / 文本摘要 AI 生成 PDF 文档摘要 AI 处理 / 智能摘要。 1. 产品功能 支持多语言摘要生成;支持 formdata 格式 PDF 文件流传参;快速处理大文件;基于 AI 模型,持续迭代优化;…

自己动手实现mybatis的底层框架(不用动态代理直接用执行器、用动态代理自己实现。图文分析!)

目录 一.原生mybits框架图分析 自己实现Mybatis框架的分析 两种框架操作数据库的方法: 二.搭建开发环境 1.先创建一个maven项目 2.加入依赖(mysql dom4j junit lombok) 三.mybatis框架的设计思路 具体实现过程 3.1实现任务阶段 1- 完成读取配置文件&#x…

【Linux修行路】线程安全和死锁

目录 ⛳️推荐 一、线程安全 1.1 常见的线程不安全情况 1.2 常见的线程安全情况 1.3 常见的不可重入情况 1.4 常见可重入的情况 1.5 可重入与线程安全的联系 1.6 可重入与线程安全的区别 二、死锁 2.1 死锁的四个必要条件 2.2 如何避免产生死锁? ⛳️推荐…

西门子PLC与HMI之间的时间同步工控小周

HMI 时间同步功能工控人加入PLC工业自动化精英社群 HMI 设备具有时间同步功能,利用 HMI 设备的该功能,可实现 PLC 和 HMI 之间的时间同步,进而实现多个 PLC 之间的时间同步。 HMI 设备时间同步的属性: 1.HMI 设备既可作为主站对…

Unity Addressables 使用说明(五)在运行时使用 Addressables(Use Addressables at Runtime)

一旦你将 Addressable assets 组织到 groups 并构建到 AssetBundles 中,就需要在运行时加载、实例化和释放它们。 Addressables 使用引用计数系统来确保 assets 只在需要时保留在内存中。 Addressables 初始化 Addressables 系统在运行时第一次加载 Addressable …

PLSQL-将一份excel数据导入到一张物理表(Oracle)

–>> 很简单~ 平时用惯了DBeaver,突然要用PLSQL Developer,确实很生疏。 –>> 我的场景,将一份.csv文件数据手动导入到Oracle下的一张物理表中去。 研究了半天,看网上说的可以用:Tools → ODBC Importer &…

视频监控接入平台web客户端有时无法登录,有时打开实时视频出现黑屏的问题解决

目录 一、背景说明 二、解决过程 1、问题产生 2、命令介绍 ①基本用法 ②常用选项 ③示例 3、问题解决 三、最终结果 一、背景说明 在本地登录视频监控平台的服务器进行测试时,发现客户端登录不上。 检查服务器的服务和数据库,运行状况正常&#xff0c…

opencv 实现两个图片的拼接去重功能

基础知识介绍 cv::Mat 是OpenCV库中用来表示图像和矩阵数据的核心类之一。它是一个多维数组,可以存储图像像素数据、矩阵数据以及其他类型的数据。以下是关于 cv::Mat 类的一些详细解释: 构造函数:cv::Mat 类有多个构造函数,可以用…

【Linux】常用的命令

文章目录 lsls -l / touchcdpwdcatechovim打开文件编辑内容保存退出 mkdirrmmvcpmangreppsnetstat总结 : ls ls > list 列出当前目录下都有哪些内容(文件/目录) 直接输入 ls,是查看当前目录的情况;输入 ls/ 就是看…

数据结构 --- 二叉树

一、满二叉树 在一棵二叉树中,如果所有分支节点都存在左子树和右子树,并且所有叶子节点都在同一层上,这 样的二叉树称为满二叉树。 每层节点数量为 2 ^ (n - 1) (n为层数) 总节点个数为 2 ^ n - 1 二、完全…

【Java】基于JWT+Token实现完整登入功能(原理+实操图解)

Java系列文章目录 补充内容 Windows通过SSH连接Linux 第一章 Linux基本命令的学习与Linux历史 文章目录 Java系列文章目录一、前言二、学习内容:三、问题描述四、解决方案:4.1 认识相关依赖4.1.1 工具包依赖4.1.2 非空注解依赖4.1.3 Token相关依赖4.1.4…

【正式版】深度技术Win10系统22H2最新版本:免费下载!

今日,系统之家小编给大家分享2024年最新发布的深度技术Win10正式版系统,该版本系统基于微软官方最新Windows10 22H2 19045.4842 64位专业版进行离线制作,确保安全无病毒,且修复了部分系统Bug,整体操作体验感更出色。系…

6.1排序——插入排序与希尔排序

本篇博客来梳理两种常见排序算法:插入排序与希尔排序 常见的排序算法如图 写排序算法的原则:先写单趟,再写整体 一、直接插入排序 1.算法思想 先假定第一个数据有序,把第二个数据插入;再假设前两个数据…

[【人工智能学习笔记】4_3 深度学习基础之卷积神经网络

卷积神经网络概述 卷积神经网络(Convolutional Neural Network, CNN)一种带有卷积结构的深度神经网络,通过特征提取和分类识别完成对输入数据的判别;在1989年提出,早期被成功用于手写字符图像识别;2012年更深层次的AlexNet网络取得成功,伺候卷积神经网络被广泛应用于各…

uniapp使用uni-popup做底部弹出选项(vue3)

效果图 页面代码 <!-- 发票筛选弹出框 --><uni-popup ref"popupRef" type"bottom" border-radius"10px 10px 0 0" background-color"#fff"><h4 style"text-align: center;margin-bottom: 20px;">发票筛…

node解析dxf文件

1、dxf数据说明 DXF是一种开放的矢量数据格式&#xff0c;可以分为两类&#xff1a;ASCII格式和二进制格式&#xff1b;ASCII具有可读性好的特点&#xff0c;但占用的空间较大&#xff1b;二进制格式则占用的空间小、读取速度快。由于AutoCAD是最流行的CAD系统&#xff0c;DXF也…

uniapp 懒加载、预加载、缓存机制深度解析

uniapp 懒加载、预加载、缓存机制深度解析 文章目录 uniapp 懒加载、预加载、缓存机制深度解析一、为什么要使用uniapp的懒加载、预加载和缓存机制二、如何使用uniapp的懒加载、预加载和缓存机制1. 懒加载2. 预加载3. 缓存机制 四、扩展与高级技巧1. 结合懒加载和预加载优化页面…

眼科市场格局固化,排名靠后的光正眼科还能逆袭吗?

眼科是A股的热门领域&#xff0c;也是医疗的黄金赛道。或许也正因为如此&#xff0c;这条赛道已经习惯了通过并购&#xff0c;利用资本杠杆跑马圈地。以最大规模的龙头爱尔眼科为首&#xff0c;并购是眼科的常规操作。 然而&#xff0c;真正观察赛道腰部及以下的公司&#xff…

elementUI根据列表id进行列合并@莫成尘

本文章提供了elementUI根据列表id进行列合并的demo&#xff0c;效果如图&#xff08;可直接复制代码粘贴&#xff09; <template><div id"app"><el-table border :data"tableList" style"width: 100%" :span-method"objectS…

2024.9.9营养小题【2】

营养&#xff1a; 1、什么数是丑数&#xff1f; 2、数学数学&#xff0c;丑数的数学意义&#xff0c;哎&#xff0c;数学思维我是忘干净了。 3、可以把while循环换成for循环。由此又想到了一点&#xff0c;三个循环结构各有使用场景。 for(;n%factors[i]0;n/factors[i]){}