java并发编程之线程的生命周期详解

java线程从创建到销毁,一共会有6个状态,不一定都经历,有可能只经历部分:

  1. NEW:初始状态,线程被创建,但是还没有调用start方法。
  2. RUNNABLED:运行状态,java线程把操作系统中的就绪和运行两种状态统一称为“运行中”。就绪状态说明该线程有被执行的资格,等待OS调度,运行状态说明该线程获得了CPU时间片,在执行中。
  3. BLOCKED:阻塞状态,表示线程进入等待状态,也就是线程因为某种原因放弃了CPU的使用权。
  4. WAITING:等待状态。该状态下的线程不会被CPU分配时间片,要么被显式唤醒,要么一值处于该状态。
  5. TIME_WAITING:超时等待状态,该状态下的线程也不会被CPU分配时间片,但是,他有超时时间,时间一过自动唤醒。
  6. TERMINATED:终止状态,表示当前线程执行完毕。run方法被执行完成。线程一旦终止就不能复生,试图启动一个终止的线程,会抛出java.lang.IllegalThreadStateException异常。

线程的生命周期如下图:
在这里插入图片描述
说明:

  1. 图中涉及到的api之后会花另外的篇幅详解。
  2. 当线程从其他的状态进入RUNNABLED状态时,是首先进入到READY就绪态等待OS的调度才开始执行的。
  3. 图中的每个状态之间通过相应方法的调用会改变到另一个状态。
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值