java线程状态

来源:互联网 发布:手机放电软件 编辑:程序博客网 时间:2024/06/14 04:46

在使用jstack 查看线程栈信息的时候,有很多java.lang.Thread.state并不是很清楚具体是啥触发的,查了官方相关资料记录下:

1:NEW

当前线程创建好了但尚未启动状态

2:RUNNABLE

java线程处于运行状态,也就是说该线程正在被jvm执行.

3:BLOCKED (on object monitor)

当前线程阻塞等待获取一个监控锁,例如调用了synchronized(obj)

4:WAITING

当前线程处于等待状态(waiting),源于调用了下面的方法:

  • Object.wait with no timeout
  • Thread.join with no timeout
  • LockSupport.park

5:TIMED_WAITING

当前线程处于等待一定时间的状态,源于调用了下面的方法:

  • Thread.sleep
  • Object.wait with timeout
  • Thread.join with timeout
  • LockSupport.parkNanos
  • LockSupport.parkUntil

6:TERMINATED

当前线程处于中止状态,已经完成了run方法里面的操作.