线程的生命周期

线程只有5种状态:new(新建)、waiting(等待)、runnable(可运行)、blocked(阻塞)、terminated(死亡)。整个生命周期就是这5中状态的相互切换。

1、new(新建)状态

    刚刚创建好还没有执行start()方法的线程就处于new状态。

Thread t = new Thread();

2、terminated(死亡)状态

    线程执行完run()方法后,就是terminated状态。

    需要注意,一个线程对象只能start一次,而且线程结束后,不能再进入其他状态。

3、waiting(等待)状态

    当线程处在runnable状态时调用了wait()方法(不带参数),这时候该线程就进入了waiting状态,比较要命的是线程一旦进入了waiting状态就不会自己醒来了,必须要别的线程通过notify或者notifyAll方法来唤醒,不然该线程一直处于waiting状态,永远也得不到使用cpu的机会。

4、Runnable(可运行)状态 = ready + running
    ready状态代表该线程准备好了,随时可以由调度器分配给cpu执行,而running状态呢表示该线程正在占用cpu,当线程的量子操作结束后,又可能由调度器让出cpu进如ready状态

yield() :让出cpu的执行权,将线程从运行转到可运行状态,但是下个时间片,该线程依然有可能被再次选中运行。

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

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

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值