Java面试篇基础部分-Java线程生命周期

  线程的生命周期分别为 新建(New)、就绪(Runnable)、运行(Running)、阻塞(Blocked)和死亡(Dead)这五种状态。
在这里插入图片描述
  在系统运行过程中有线程不断地被创建,而旧的线程在执行完毕之后被清理,线程通过排队的方式获取共享资源或者锁的时候被阻塞,所以运行中的线程就会在就绪、阻塞、运行状态之间来回切换。线程的状态转化流程如图所示
在这里插入图片描述

  • 1、调用new方法创建一个新的线程,这个时候线程处于新建状态。
  • 2、调用start方法启动一个线程,这个时候线程处于就绪状态。
  • 3、处于就绪状态的线程需要等待CPU获取资源来支持运行,等待获取CPU资源之后会进入到running状态。
  • 4、在运行状态的线程调用yield方法之后会失去处理器的资源,这个时候就会再次进入到就绪状态。
  • 5、正在运行状态的线程执行了sleep方法、I/O、等待同步锁、等待通知、调用了suspend方法之后就会进入到挂起,进入阻塞状态。
  • 6、阻塞状态的线程如果sleep时间到了、I/O方法返回了、获取到了同步锁、收到线程通知、或者是调用了resume的方法之后,就会再次进入到就绪状态,这个时候就是等待CPU分配资源。
  • 7、处于运行状态的线程,在调用了run方法或者是call方法,并且正常的执行完成、或者是调用了stop正常停止或者异常导致线程退出之后,就会进入到死亡状态。

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

nihui123

你的鼓励将是我创作的最大动力

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

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

余额充值