线程的状态:操作系统层面和JVM层面

在操作系统层面,线程有五种状态

初始状态:线程被创建,操作系统为其分配资源。

可运行状态(就绪状态):线程被创建完成,进入就绪队列,参与CPU执行权的争夺。或因为一些原因,从阻塞状态唤醒的线程,重新进入就绪队列,参与CPU时间片的抢夺。

运行状态:线程抢到CPU执行权,进行上下文切换(保存上一条线程执行的数据和环境),执行任务。如果时间片结束,进行上下文切换,重新进入可运行状态。

阻塞状态:某些情况下,线程需要等待其他资源或者进入休眠,进入阻塞状态,等待唤醒。

终止状态:线程进入终止状态,通常发生在线程执行完毕、被中断或被异常退出时。在终止状态中,线程释放了它所占用的资源。

在JVM层面,线程有六种状态(图有点糙....)

 初始状态NEW:线程被创建,系统分配资源。

运行状态RUNNABLE:线程被调用start()方法,进入线程任务的执行。

有限期等待TIMED_WAITING:一般是被指定了超时时间,进入等待,一般会在超时时间结束自动返回,也可以在超时时间内被notify()唤醒,或

无限期等待WAITING:表示该线程需要等待其他线程做出一些特定动作(通知或中断),否则会一直等待下去。

阻塞状态BLOCKED:锁阻塞状态,等待锁释放。

终止状态TERMINATED:当线程执行完毕或因异常退出时,它进入终止状态,释放所有资源。

PS:JVM的RUNNABLE也就是操作系统下的可运行状态和运行状态。

这是因为现在的cpu分片时间很很小,一个时间片大概是10-20ms,每条线程每次处于运行中的状态也就是0.01s-0.02s,就要放弃cpu执行权,进入就绪队列。切换的如此之快,区分这两种状态就没有什么意思了。

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

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

相关文章

车道线检测项目 | 基于lanenet实现的实时车道线检测

项目应用场景 面向自动驾驶场景的车道线检测场景,项目的特点是能够达到实时的车道线检测 项目效果: 项目细节 > 具体参见项目 README.md (1) 安装依赖 pip3 install -r requirements.txt (2) 测试图片 python tools/test_lanenet.py --weights_pat…

QT QInputDialog弹出消息框用法

使用QInputDialog类的静态方法来弹出对话框获取用户输入,缺点是不能自定义按钮的文字,默认为OK和Cancel: int main(int argc, char *argv[]) {QApplication a(argc, argv);bool isOK;QString text QInputDialog::getText(NULL, "Input …

酷开科技通过酷开系统,将场景精细划分

OTT行业发展至今,伴随着消费者内容消费习惯的不断演进以及商业营销基建的持续完善,整个OTT大屏营销环境也发生了新的变化。作为家庭场景中的第一媒介的OTT大屏,成为了当下红利效应的营销阵地,正开启新一轮的价值释放。 在目前阶段…

excel 提取数字字符混合文本中的数字(快捷键ctrl+e)

首先,已知A列数据,在B1单元格输入A列中的数据,如3*4*6 第二部:全选对应的B列,然后: ctrld 批量复制 CTRLE 智能复制 由此可见,智能提取汉字与数字混合中的数字方法 。若想分别提取3个数字&am…

独立游戏《星尘异变》UE5 C++程序开发日志3——UEC++特供的数据类型

本篇日志将介绍FString,FText、FName的用法和相互转换,以及容器TMap,TArray的增删查改 一、字符串相关数据类型:FString、FText、FName FString是最接近std::string的类型,字符串本身可以看做一个存储char型的动态数…

计算机网络-RIP动态路由协议简介

一、概述 前面我们学习了动态路由协议按照工作机制及算法划分可以分为:距离矢量路由协议DV型和链路状态路由协议LS型。RIP就是典型的距离矢量路由协议,但是实际工作中用得已经比较少了。 距离矢量路由协议DV: RIP 链路状态路由协议LS: OSPF IS-IS 二、RI…

四数之和【双指针】

三数之和 举一反三 class Solution { public:vector<vector<int>> fourSum(vector<int> &nums, int target){sort(nums.begin(), nums.end());vector<vector<int>> ret;int first 0, n nums.size();while (first < n){int second firs…

康耐视visionpro-CogBlobTool工具详细说明

CogBlobTool功能说明: 通过设置灰度值提取感兴趣区域,并分析所提取区域的面积、长宽等参数。 CogBlobTool操作说明: ①.打开工具栏,双击或点击鼠标拖拽添加CogBlobTool工具 ②.添加输入图像:单击鼠标右键“链接到”或以连线拖拽的方式选择相应输入源 ③.极性:“白底黑点…

宝宝洗澡时间:精心呵护,打造温馨时刻

引言&#xff1a; 给新生儿洗澡是每位父母的日常之一&#xff0c;而选择适当的洗澡时间对宝宝的健康和舒适度至关重要。在本文中&#xff0c;我们将探讨宝宝洗澡时间的注意事项&#xff0c;为您提供正确的洗澡时间和洗澡技巧&#xff0c;让宝宝在洗澡过程中感受到温暖舒适的体验…

Python基本运算

1.逻辑运算符 第四行会有黄色的下划线是因为这个不是系统推荐的写法&#xff0c;系统推荐的是第五行的链式比较&#xff1b; 2.短路求值 对于and而言&#xff0c;左边的语句是false&#xff0c;那么整体一定是false,右边的表达式就不会进行计算&#xff1b; 对于or而言&…

STM32 PWM通过RC低通滤波转双极性SPWM测试

STM32 PWM通过RC低通滤波转双极性SPWM测试 &#x1f4cd;参考内容《利用是stm32cubemx实现双极性spwm调制 基于stm32f407vet6》&#x1f4fa;相关视频链接&#xff1a;https://www.bilibili.com/video/BV16S4y147hB/?spm_id_from333.788 双极性SPWM调制讲解以及基于stm32的代码…

基于TensorFlow的花卉识别(算能杯)%%%

Anaconda Prompt 激活 TensorFlow CPU版本 conda activate tensorflow_cpu //配合PyCharm环境 直接使用TensorFlow1.数据分析 此次设计的主题为花卉识别&#xff0c;数据为TensorFlow的官方数据集flower_photos&#xff0c;包括5种花卉&#xff08;雏菊、蒲公英、玫瑰、向日葵…

基于Echarts的超市销售可视化分析系统(数据+程序+论文)

本论文旨在研究Python技术和ECharts可视化技术在超市销售数据分析系统中的应用。本系统通过对超市销售数据进行分析和可视化展示&#xff0c;帮助决策层更好地了解销售情况和趋势&#xff0c;进而做出更有针对性的决策。本系统主要包括数据处理、数据可视化和系统测试三个模块。…

进阶了解C++(6)——二叉树OJ题

Leetcode.606.根据二叉树创建字符串&#xff1a; 606. 根据二叉树创建字符串 - 力扣&#xff08;LeetCode&#xff09; 难度不大&#xff0c;根据题目的描述&#xff0c;首先对二叉树进行一次前序遍历&#xff0c;即&#xff1a; class Solution { public:string tree2str(Tr…

php 快速入门(七)

一、操作数据库 1.1 操作MySQL的步骤 第一步&#xff1a;登录MySQL服务器 第二步&#xff1a;选择当前数据库 第三步&#xff1a;设置请求数据的字符集 第四步&#xff1a;执行SQL语句 1.2 连接MySQL 函数1&#xff1a;mysql_connect() 功能&#xff1a;连接&#xff08;登录…

Linux根据时间删除文件或目录

《liunx根据时间删除文件》和 《Linux 根据时间删除文件或者目录》已经讲述了根据时间删除文件或目录的方法。 下面我做一些补充&#xff0c;讲述一个具体例子。以删除/home目录下的文件为例。 首先通过命令&#xff1a; ls -l --time-style"%Y-%m-%d %H:%M:%S"…

详解:JS的四种异步解决方案之分布/订阅,及其利弊。

上期讲了详解&#xff1a;JS异步解决方案之分布/订阅&#xff0c;及其弊端&#xff0c;原文链接在文章后面&#xff0c;分布/订阅是异步的一种方式而已&#xff0c;本期讲解第六个方案。 一、什么是分布/订阅 分布/订阅&#xff08;Publish/Subscribe&#xff09;是一种软件架…

YOLOv9改进策略:注意力机制 | FocalNet焦点调制注意力取代自注意力

&#x1f4a1;&#x1f4a1;&#x1f4a1;本文改进内容&#xff1a;由于自注意力二次的计算复杂度效率较低&#xff0c;尤其是对于高分辨率输入。因此&#xff0c;作者提出了focal modulation network&#xff08;FocalNet&#xff09;使用焦点调制模块来取代自注意力。 改进结…

黑群晖基于docker配置frp内网穿透

前言 我的黑群晖需要设置一下内网穿透来外地访问&#xff0c;虽然zerotier的p2p组网已经很不错了&#xff0c;但是这个毕竟有一定的局限性&#xff0c;比如我是ios的国区id就下载不了zerotier的app&#xff0c;组网不了 1.下载镜像 选择第一个镜像 2.映射文件 配置frpc.ini&a…

Python:文档注释、类型标注和注释宏# type:

目录 1、增加文档注释2、增加类型标注3、增加注释宏 看一段简单的代码 def add(x, y):return x y如下代码调用函数&#xff0c;可以正常执行 print(add(1, 2)) # 3 print(add(1, 2)) # 121、增加文档注释 def add(x, y):"""sum x and y:param x: int:param y…