线程的六大状态的介绍

2022-05-13 11:31:50 浏览数 (2)

线程的生命周期包含5个阶段,包括:新建、就绪、运行、阻塞、销毁。

  • 新建(New):创建后尚未启动的线程的状态
  • 运行(Runnable):包含Running和Ready new的线程先进入new 状态,Start会进入ready状态,当操作系统分配时间片进入running状态 就绪→执行:处于就绪状态的进程,当进程调度程序为之分配了处理机后,该进程便由就绪状态转变成执行状态。 执行→就绪:处于执行状态的进程在其执行过程中,因分配给它的一个时间片已用完而不得不让出处理机,于是进程从执行状态转变成就绪状态。
  • 无限期等待(Waiting):不会被分配CPU执行时间,需要显式被唤醒 没有设置Timeout参数的Object.wait()方法。 没有设置Timeout参数的Thread.join()方法。 LockSupport.park()方法。
  • 限期等待(Timed Waiting):在一定时间后会由系统自动唤醒 Thread.sleep(s)方法。 设置了Timeout参数的Object.wait()方法。 设置了Timeout参数的Thread.join()方法。 LockSupport.parkNanos()方法。 LockSupport.parkUntil()方法。
  • 阻塞(Blocked):等待获取排它锁
  • 结束(Terminated):已终止线程的状态,线程已经结束执行

状态转换图

0 人点赞