Java面试题之线程状态

一、线程状态的6个定义

Java中线程状态的定义在java.lang.Thread.State类里,共分为5个状态,如下:

  1. New:尚未启动的线程的线程状态。
  2. Runnable:可运行线程的线程状态,等待CPU调度。
  3. Blocked:线程阻塞等待获取同步监视器锁定的线程状态,处于阻塞状态的线程在进入同步代码块/同步方法或者再次进入同步代码块/同步方法前需获取同步监视器的锁定。
  4. Waiting:等待线程的状态,不带超时的方法有:Object.waitThread.joinLockSupport.park
  5. Timed Waiting:具有指定等待时间的等待线程的线程状态,带超时的方法有:Thread.sleepObject.waitThread.joinLockSupport.parkNanosLockSupport.parkUntil
  6. Terminated:终止线程的线程状态,线程正常完成执行或者出现异常会处于该状态。




二、线程状态切换流程图

image.png
©著作权归作者所有,转载或内容合作请联系作者
平台声明:文章内容(如有图片或视频亦包括在内)由作者上传并发布,文章内容仅代表作者本人观点,简书系信息发布平台,仅提供信息存储服务。

推荐阅读更多精彩内容