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

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

  Java线程的生命周期分为5个阶段: 新建状态、就绪状态、 运行状态、 阻塞状态、 死亡状态。在程序中, 可以通过一些操作, 可以使线程在不同状态中进行转换。如下图:


 

  1、新建状态(New):

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

  2、就绪状态(Runnable):

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

  3、运行状态(Running):

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

  4、阻塞状态(Blocked):

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

  5、死亡状态(Terminated):

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

  

  • 4
    点赞
  • 12
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值