线程的5种状态(线程状态有哪些,它们之间是如何转换的)

2025-02-22 17:20:02 0

线程的5种状态(线程状态有哪些,它们之间是如何转换的)

本文目录

线程状态有哪些,它们之间是如何转换的

Java中的线程的生命周期大体可分为5种状态。

1. 新建(NEW):新创建了一个线程对象。

2. 可运行(RUNNABLE):线程对象创建后,其他线程(比如main线程)调用了该对象的start()方法。该状态的线程位于可运行线程池中,等待被线程调度选中,获取cpu 的使用权 。

3. 运行(RUNNING):可运行状态(runnable)的线程获得了cpu 时间片(timeslice) ,执行程序代码。4. 阻塞(BLOCKED):阻塞状态是指线程因为某种原因放弃了cpu 使用权,也即让出了cpu timeslice,暂时停止运行。直到线程进入可运行(runnable)状态,才有机会再次获得cpu timeslice 转到运行(running)状态。阻塞的情况分三种: (一). 等待阻塞:运行(running)的线程执行o.wait()方法,JVM会把该线程放入等待队列(waitting queue)中。(二). 同步阻塞:运行(running)的线程在获取对象的同步锁时,若该同步锁被别的线程占用,则JVM会把该线程放入锁池(lock pool)中。(三). 其他阻塞:运行(running)的线程执行Thread.sleep(long ms)或t.join()方法,或者发出了I/O请求时,JVM会把该线程置为阻塞状态。当sleep()状态超时、join()等待线程终止或者超时、或者I/O处理完毕时,线程重新转入可运行(runnable)状态。

5. 死亡(DEAD):线程run()、main() 方法执行结束,或者因异常退出了run()方法,则该线程结束生命周期。死亡的线程不可再次复生。

线程的状态图:

线程状态有哪几种

线程一共有以下几种状态:

1、新建状态(New):新创建了一个线程对象。

2、就绪状态(Runnable):线程对象创建后,其他线程调用了该对象的start()方法。该状态的线程位于“可运行线程池”中,变得可运行,只等待获取CPU的使用权。即在就绪状态的进程除CPU之外,其它的运行所需资源都已全部获得。

3、运行状态(Running):就绪状态的线程获取了CPU,执行程序代码。

4、阻塞状态(Blocked):阻塞状态是线程因为某种原因放弃CPU使用权,暂时停止运行。直到线程进入就绪状态,才有机会转到运行状态。

阻塞的情况分三种:

(1)、等待阻塞:运行的线程执行wait()方法,该线程会释放占用的所有资源,JVM会把该线程放入“等待池”中。进入这个状态后,是不能自动唤醒的,必须依靠其他线程调用notify()或notifyAll()方法才能被唤醒。

(2)、同步阻塞:运行的线程在获取对象的同步锁时,若该同步锁被别的线程占用,则JVM会把该线程放入“锁池”中。

(3)、其他阻塞:运行的线程执行sleep()或join()方法,或者发出了I/O请求时,JVM会把该线程置为阻塞状态。当sleep()状态超时、join()等待线程终止或者超时、或者I/O处理完毕时,线程重新转入就绪状态。

Java中线程的几种可用状态有哪些请大家解释一下

线程在执行过程中,可以处于下面几种状态:1、就绪(Runnable):线程准备运行,不一定立马就能开始执行。2、运行中(Running):进程正在执行线程的代码。3、等待中(Waiting):线程处于阻塞的状态,等待外部的处理结束。4、睡眠中(Sleeping):线程被强制睡眠。5、I/O阻塞(BlockedonI/O):等待I/O操作完成。6、同步阻塞(BlockedonSynchronization):等待获取锁。7、死亡(Dead):线程完成了执行。

线程的几种状态

Java中的线程的生命周期大体可分为5种状态。1、初始状态(NEW):新创建了一个线程对象。2、可运行(RUNNABLE):线程对象创建后,其他线程(比如main线程)调用了该对象的start()方法。该状态的线程位于可运行线程池中,等待被线程调度选中,获取cpu的使用权 。3、运行(RUNNING):可运行状态(runnable)的线程获得了cpu 时间片(timeslice) ,执行程序代码。4. 阻塞(BLOCKED):阻塞状态是指线程因为某种原因放弃了cpu 使用权,也即让出了cpu timeslice,暂时停止运行。直到线程进入可运行(runnable)状态,才有机会再次获得cpu timeslice 转到运行(running)状态。阻塞的情况分三种:(1)、等待阻塞:运行(running)的线程执行o.wait()方法,JVM会把该线程放入等待队列(waitting queue)中。(2)、同步阻塞:运行(running)的线程在获取对象的同步锁时,若该同步锁被别的线程占用,则JVM会把该线程放入锁池(lock pool)中。(3)、其他阻塞:运行(running)的线程执行Thread.sleep(long ms)或t.join()方法,或者发出了I/O请求时,JVM会把该线程置为阻塞状态。当sleep()状态超时、join()等待线程终止或者超时、或者I/O处理完毕时,线程重新转入可运行(runnable)状态。5、死亡(DEAD):线程run()、main() 方法执行结束,或者因异常退出了run()方法,则该线程结束生命周期。死亡的线程不可再次复生。

线程有几种状态,分别是哪几种,他们之间的联系如何

1、新状态:线程已被创建但尚未执行(start() 尚未被调用)。 2、可执行状态:线程可以执行,虽然不一定正在执行。CPU 时间随时可能被分配给该线程,从而使得它执行。 3、阻塞状态:线程不会被分配 CPU 时间,无法执行;可能阻塞于I/O,或者阻塞于同步锁。 4、死亡状态:正常情况下run() 返回使得线程死亡。调用 stop()或 destroy() 亦有同样效果,但是不被推荐,前者会产生异常,后者是强制终止,不会释放锁。

线程的5种状态(线程状态有哪些,它们之间是如何转换的)

本文编辑:admin

更多文章:


新浪微博html5版购买地址电脑版(新浪微博有电脑桌面版吗)

新浪微博html5版购买地址电脑版(新浪微博有电脑桌面版吗)

本文目录新浪微博有电脑桌面版吗电脑版的微博登录网址是什么电脑版新浪微博网址链接是什么电脑版新浪博客下载地址新浪微博有电脑桌面版吗有。1、百度“新浪微博桌面”,选择第一条“微博桌面首页”,后面标注有“官网”标志的。2、在打开网页右下角选择“立

2025年2月13日 23:20

passing remark(make a passing remark 是什么意思passing如何解释)

passing remark(make a passing remark 是什么意思passing如何解释)

本文目录make a passing remark 是什么意思passing如何解释外贸Pass with Remark什么意思make a passing remark 是什么意思passing如何解释意思:顺便说一句;顺口溜passin

2025年3月1日 16:10

boostrap中按钮有哪些样式?改变单选按钮样式

boostrap中按钮有哪些样式?改变单选按钮样式

本文目录boostrap中按钮有哪些样式改变单选按钮样式页面如何添加按钮以及按钮样式设置怎样用CSS写按钮样式如何改变delphi 中按钮的样式boostrap中按钮有哪些样式按钮的样式类型如下所示.btn 为按钮添加基本样式.btn

2025年4月3日 07:10

正版linux系统官网(中国官方现在正力推LINUX操作系统以取代WINDAOWS桌面系统,是真的吗如何看)

正版linux系统官网(中国官方现在正力推LINUX操作系统以取代WINDAOWS桌面系统,是真的吗如何看)

本文目录中国官方现在正力推LINUX操作系统以取代WINDAOWS桌面系统,是真的吗如何看Linux系统和Windows系统本质上的区别是什么中国官方现在正力推LINUX操作系统以取代WINDAOWS桌面系统,是真的吗如何看官方是否采用Li

2025年3月18日 15:40

sql dateformat用法(请教高手列举出sql语句中所有有关日期 、时间的用法 谢谢)

sql dateformat用法(请教高手列举出sql语句中所有有关日期 、时间的用法 谢谢)

本文目录请教高手列举出sql语句中所有有关日期 、时间的用法 谢谢如何在 SQL Server中 将日期格式化请问sql.Date 格式是什么 为什么我的不对My SQL取得当前时间的函数是什么格式化日期的函数是什么format可以用在SQ

2025年4月1日 20:10

编程命名规范(C语言标识符的命名规则是什么请举例说明)

编程命名规范(C语言标识符的命名规则是什么请举例说明)

本文目录C语言标识符的命名规则是什么请举例说明使用Java作为程序语言时,好的命名规范有哪些编程规范包括哪些内容命名规范应该只是编程规范中的一种C++编程 重要基础规范有哪些C#中的命名规则C语言标识符的命名规则是什么请举例说明C语言的标识

2025年3月29日 19:10

对话框区别于窗口的一个最显著一点是对话框可以(对话框与窗口有什么区别)

对话框区别于窗口的一个最显著一点是对话框可以(对话框与窗口有什么区别)

本文目录对话框与窗口有什么区别“窗口”与“对话框”有什么区别什么是对话框,对话框与窗口的主要区别什么是对话框对话框与窗口的主要区别是什么windows7的窗口与对话框有何不同Windows中窗口与对话框的区别是对话框与其它窗口相比的区别是窗

2025年4月5日 02:30

报告缺陷注意事项有哪些?一个缺陷测试报告由什么组成

报告缺陷注意事项有哪些?一个缺陷测试报告由什么组成

本文目录报告缺陷注意事项有哪些一个缺陷测试报告由什么组成什么是缺陷报告缺陷报告包括哪些要素缺陷报告是不是可以随意写撰写缺陷报告注意事项有哪些软件测试中,测试报告和缺陷报告区别在哪有模板吗报告缺陷注意事项有哪些软件缺陷的描述是软件缺陷报告的基

2025年2月10日 18:00

cite标签(cite的标签定义)

cite标签(cite的标签定义)

本文目录cite的标签定义html的页面标签HTML语言中是什么意思引用是什么意思citespace聚类标签大小是什么意思cite的标签定义用 《cite》 标签把指向其他文档的引用分离出来,尤其是分离那些传统媒体中的文档,如书籍、杂志、期

2025年3月24日 12:00

jfinal框架教程(使用jfinal框架验证登录时应该使用什么方法)

jfinal框架教程(使用jfinal框架验证登录时应该使用什么方法)

本文目录使用jfinal框架验证登录时应该使用什么方法jfinal框架怎么用java代码创建数据表浅谈java框架jfinal和nutz的区别JFinal框架怎么实现页面登录统计使用jfinal框架,查询功能有没有极简的设计方案jfinal

2025年2月26日 13:50

header length(C#这句代码什么意思 字节操作)

header length(C#这句代码什么意思 字节操作)

本文目录C#这句代码什么意思 字节操作在matlab中图像处理中content = zeros(1, m*n/(block_size*block_size));Header length:20 bytes的翻译是:什么意思php用 head

2025年3月18日 18:20

java培训网课(java培训是不是很贵值得吗)

java培训网课(java培训是不是很贵值得吗)

本文目录java培训是不是很贵值得吗学习Java去哪里好java培训课程好不好哪个好JAVA培训一般需要多次时间学费大概是多少java培训是不是很贵值得吗java培训费用在20000元左右,通过Java培训班可以快速入行Java,而Java

2025年2月22日 02:50

什么是Linux集群?Redis怎么做集群

什么是Linux集群?Redis怎么做集群

本文目录什么是Linux集群Redis怎么做集群如何访问k8s集群内部署的mysql服务什么是集群存储MySQL大型分布式集群高可用搭建问题如何解决呢高可用集群的软件选择什么是Linux集群集群通信系统是一种计算机系统, 它通过一组松散集成

2025年4月2日 04:40

tablet是平板电脑的意思吗(平板电脑的英文怎么说)

tablet是平板电脑的意思吗(平板电脑的英文怎么说)

本文目录平板电脑的英文怎么说平板电脑英语怎么说什么是TABLET PCphone/laptop/tablet什么意思Tablet PC,这是什么意思平板电脑的英文怎么说平板电脑英文意思是:Tablet PC英文也可以读作: n.药片;碑,

2025年2月26日 08:10

安卓开发环境搭建实验报告(如何搭建android运行环境)

安卓开发环境搭建实验报告(如何搭建android运行环境)

本文目录如何搭建android运行环境如何搭建android开发环境android开发环境搭建2016年安卓开发环境如何搭建手机android开发环境该如何搭建如何搭建android运行环境1.Android运行环境的搭建进行安卓系统的软件

2025年3月17日 22:50

wordpress安装详细教程(如何修改WordPress安装时预留的电子邮件地址)

wordpress安装详细教程(如何修改WordPress安装时预留的电子邮件地址)

本文目录如何修改WordPress安装时预留的电子邮件地址128M内存VPS安装WordPress是怎样一种体验如何修改WordPress安装时预留的电子邮件地址很简单只需要用这个邮箱的账号登陆 WordPress 在 WordPress

2025年3月13日 08:10

climate什么意思(climate什么意思中文翻译)

climate什么意思(climate什么意思中文翻译)

本文目录climate什么意思中文翻译climate 的汉语意思是什么Climate 的意思climate什么意思climate什么意思气候汽车上climate什什么意思climate什么意思中文翻译climate n. 气候;氛围;状况;

2025年2月12日 00:00

localhost 8080什么意思(http://localhost:8080/test/,我想问一下8080后面的/代表什么目录啊)

localhost 8080什么意思(http://localhost:8080/test/,我想问一下8080后面的/代表什么目录啊)

本文目录http://localhost:8080/test/,我想问一下8080后面的/代表什么目录啊http://127.0.0.1:7001/和http://localhost:8080/分别是什么http://localhost:8

2025年3月27日 15:10

assemblyinfo(c#web怎么加入assemblyinfo cs)

assemblyinfo(c#web怎么加入assemblyinfo cs)

本文目录c#web怎么加入assemblyinfo cs在VS里面编程,程序本身没有一点问题,但是每次都在AssemblyInfo.cs里面有三个错误c#web怎么加入assemblyinfo cs/ 程序集的版本信息由下列 4 个值组成:

2025年3月15日 02:20

VC++怎么入门?怎样学vc++

VC++怎么入门?怎样学vc++

本文目录VC++怎么入门怎样学vc++如何使用vcVC++怎么入门按照楼上兄弟的说法!可能学了n年还没开始学 VC 吧!在你的心中VC就是那么难的吗!怎么说我也是学VC的,虽然不敢说很厉害,但是自觉对VC还是挺有心得的。学VC最主要的首先要

2025年2月13日 01:30

近期文章

本站热文

harbor,port,pier的区别?谁能解释“harbour“(港口)与“pier“(码头)的区别
2025-02-22 17:40:03 浏览:18
ibatis foreach(ibatis 批量update操作)
2025-02-10 23:40:06 浏览:7
endless rain(endless rain表达什么情感)
2025-02-14 06:00:02 浏览:6
标签列表

热门搜索