线程的状态及其相互转换

  • 初始(NEW):新创建了一个线程对象,但还没有调用start()方法。
  • 运行(RUNNABLE):处于可运行状态的线程正在JVM中执行,但它可能正在等待来自操作系统的其它资源,例如处理器。
  • 阻塞(BLOCKED):线程阻塞于synchronized锁,等待获取synchronized锁的状态。
  • 等待(WAITING):Object.wait()、Thread.join()、LockSupport.park(),进入该状态的线程需要等待其它线程做出一些特定动作(通知或中断)。
  • 超时等待(TIMED_WAITING):Thread.sleep(long)、Object.wait(long)、Thread.join(long)、LockSupport.parkNanos()、LockSupport.parkUntil(),该状态不同于WAITING,它可以在指定的时间内自行返回。
  • 终止(TERMINATED):表示该线程已经执行完毕。

posted @ 2021-05-25 15:58  Gen2021  阅读(94)  评论(0编辑  收藏  举报