线程状态切换

1)      新创建一个新的线程对象后,在调用它的start()方法,系统就会为此线程分配CPU的资源,是其处于Runnable(可运行)状态,这一个准备运行的阶段。若果线程强占到CPU资源,此线程就处于Running(运行)状态。

2)      Runnable状态和Running转态可相互切换,因为有可能线程运行一段时间后,有其它优先级的线程抢占到了CPU资源,这是线程就从Running状态变化Runnable转态。

线程进入Runnable状态大体分为如下情况

A:调用sleep()方法后经过的时间超过了指定的休眠时间

B:线程调用的阻塞IO已经返回,阻塞方法执行完毕

C:线程成功地获得了视图同步的监视器

D:线程正在等待某个通知,其它线程发出来了通知

E:处于挂起转态的线程调用了resume恢复方法

3)      Blocked阻塞,Blocked状态结束后,进入Runnable状态,等待系统重新分配资源。

出现Blocked状态大体分为如下情况

A:线程调用sleep()方法,主动放弃占用的处理器资源。

B:线程调用的阻塞IO方法,在该方法返回前,该线程被阻塞。

C:线程试图获得了一个视图同步的监视器,该同步监视器正被其他线程所持有。

D:线程正在等待某个通知。

E:程序调用suspend方法处于该方法将线程挂起,此方法容易导致死锁,尽量避免使用该方法。

4)      run()方法运行结束后进入销毁阶段,整个线程执行完毕。


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

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

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值