副本第二关:线程的生命周期及五种基本状态

  1. 新建。
    ① new()即可进入新建状态;
  2. 就绪。
    ① 新建 -> 就绪,通过线程的start()方法;
  3. 运行。
    ① 就绪 -> 运行,等待CPU调度执行,当CPU调度处于就绪的线程时,线程才进入运行状态;运行 -> 就绪,通过线程的yield()方法;
  4. 阻塞。阻塞又分为普通阻塞、同步阻塞、等待阻塞。
    ① 运行 -> 普通阻塞,通过线程的sleep()或者join()方法;运行 -> 同步阻塞,通过synchronized关键字;运行 -> 等待阻塞,通过Object类的wait()方法。
    ② 普通阻塞 -> 就绪,通过sleep()结束、join()结束、I/O完成;同步阻塞 -> 就 绪,通过获取到锁资源;等待阻塞 -> 就绪,通过notify()或者notifyAll()去唤醒等待线程,然后去争夺锁资源,拿到锁资源后,进入就绪状态;
  5. 死亡。
    ① 运行 -> 死亡,线程执行完或者因异常退出了run()方法,该线程结束生命周 期。

注意:只有就绪状态和运行状态才会占用CPU时间片,其他都会让出CPU时间片。

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值