线程的生命周期

1、线程的生命周期(状态)

(1)线程一共有6种状态分别为:

New:新创建状态,当new一个Thread对象,但未调用start方法后就处于该状态

Runnable:可运行状态,可运行状态实际上分为两种状态一种时Running(正在运行),另 一种是Ready(已准备),这两种状态统称为可运行状态,当线程的start方法被调用后 就会处于reedy状态,此时线程会等待分配CPU时间片,当获取到时间片之后就处于 running状态,同理当时间片用完(系统调度,或调用了yield方法)之后就又回到了ready 状态。

Terminated:已终止状态,线程正常运行完成或抛出异常后会到达已终止状态

Blocked:被阻塞,等待获取锁对象进入synchronized代码块或方法

Waiting:等待,处于该状态时线程不会被分配CPU执行时间,要等待被显示的唤醒,否则 会无限期的等待。

Timed_Wating:计时等待,与waiting相似,不同点在于不会无限期的等待,到等待时间 后会自动唤醒。

(2)线程状态间的转换

             

补充:

a、从Object.wait()状态刚被唤醒时,通常不能立刻抢到Monitor锁,那么就会从waiting先进入到Blocked状态,抢到锁后再转换到Runnable状态。

b、如果发生异常能够直接跳到Terminated状态,不必再遵循路径,比如直接从Waiting跳到Terminated。

c、阻塞状态:一般而言,把Blocked、Waiting、Time_Waiting都称为阻塞状态。

(3)代码演示:

       (a)NEW、RUNABLE、TE

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

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

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值