码迷,mamicode.com
首页 > 编程语言 > 详细

Java线程的生命周期

时间:2020-02-06 16:38:08      阅读:80      评论:0      收藏:0      [点我收藏+]

标签:情况   错误   enter   http   span   特殊情况   资源   程序   特殊   

线程的生命周期及状态转换

在Java中任何对象都有生命周期,线程也不例外,线程的创建即是线程的生命周期的开始,当run() 方法执行完毕, 或者线程抛出一个未捕获的异常 或者 错误的时候, 线程的生命周期就结束了。

Java线程的生命周期分为5个阶段: 新建状态、就绪状态、 运行状态、 阻塞状态、 死亡状态

在程序中,可以通过一些操作, 可以使线程在不同状态中进行转换。如下图:

技术图片

 

   1、新建状态(New):

         此时新县城对象不能运行, 和其他Java 对象一样, 仅仅由Java 虚拟机分配了内存, 没有表现出任何线程的动态特征。

   2、就绪状态(Runnable):

         当线程对象调用了start() 方法后, 该线程即进入就绪状态, 此线程进入可运行池中, 等待CPU的资源。

   3、运行状态(Running):

         处于就绪状态的线程获得CPU使用权后, 开始执行run() 方法中的线程执行体, 则该线程处于运行状态。注意: 只有处于就绪状态的线程 才可能进入运行状态。

     4、阻塞状态(Blocked):

         正处于运行状态的线程遇到某些特殊情况时, 会放弃CPU使用权, 进入阻塞状态。当引起特殊情况的原因被解除后, 线程进入就绪状态, 回到可运行池中, 重新等待系统调度 的CPU使用权。

     5、死亡状态(Terminated):

        当run() 方法执行完毕, 或者线程抛出一个未捕获的异常 或者 错误的时候,线程就进入死亡状态了,进入死亡状态的线程不再拥有运行的资格,也不能转换到其他状态。

Java线程的生命周期

标签:情况   错误   enter   http   span   特殊情况   资源   程序   特殊   

原文地址:https://www.cnblogs.com/bubeibukang/p/12268867.html

(0)
(0)
   
举报
评论 一句话评论(0
登录后才能评论!
© 2014 mamicode.com 版权所有  联系我们:gaon5@hotmail.com
迷上了代码!