栏目分类:
子分类:
返回
名师互学网用户登录
快速导航关闭
当前搜索
当前分类
子分类
实用工具
热门搜索
名师互学网 > IT > 软件开发 > 后端开发 > Java

线程五种状态(线程生命周期)

Java 更新时间: 发布时间: IT归档 最新发布 模块sitemap 名妆网 法律咨询 聚返吧 英语巴士网 伯小乐 网商动力

线程五种状态(线程生命周期)

1、新建状态

当创建好当前对象之后,没有启动之前(没有调用start方法),比如Thread t = new Thread();

2、就绪状态

准备开始执行,并没有执行,表示调用start方法之后,未获取到cpu资源

3、运行状态

当前进行获取到cpu资源之后

4、死亡状态:

当运行中的线程正常执行完所有的代码逻辑或因为异常情况导致程序结束叫死亡状态

5、阻塞状态

在程序运行过程中,发生某些情况,导致当前线程无法顺利执行,此时会进入阻塞状态,进入阻塞状态的
原因消除以后,所有的阻塞队列会再次进入到就绪状态,随机抢占cpu资源,等待执行

注意点

为什么我们调用 start() 方法时会执行 run() 方法,为什么我们不能直接调用 run() 方法?

new 一个 Thread,线程进入了新建状态。调用 start() 方法,会启动一个线程并使线程进入了就绪状态,当分配到时间片后就可以开始运行了。 start() 会执行线程的相应准备工作,然后自动执行 run() 方法的内容,这是真正的多线程工作。

而直接执行 run() 方法,会把 run 方法当成一个 main 线程下的普通方法去执行,并不会在某个线程中执行它,所以这并不是多线程工作。

总结: 调用 start 方法方可启动线程并使线程进入就绪状态,而 run 方法只是 thread 的一个普通方法调用,还是在主线程里执行。

转载请注明:文章转载自 www.mshxw.com
本文地址:https://www.mshxw.com/it/683305.html
我们一直用心在做
关于我们 文章归档 网站地图 联系我们

版权所有 (c)2021-2022 MSHXW.COM

ICP备案号:晋ICP备2021003244-6号