JVM线程的几种状态

1.New

新建的线程,线程还没启动。

2.Runnable

线程正在运行或者等待操作系统中的其他资源,例如线程运行过程中,系统分配资源给其他操作,此时这个线程还是Runnable状态,可以理解为可运行的线程。

3.Blocked

阻塞状态,阻塞状态的线程正在等待监视器锁,在Dump日志中一般显示为java.lang.Thread.State: BLOCKED

4.Waiting

等待线程,线程正在无限期的等待另一个线程执行某些特别操作。一般线程由于调用一下方法会处于等待状态。

Object.wait // 不带超时
Thread.join // 不带超时
LockSupport.park

5.Time_Waiting

和Waiting类似,但是线程等待有时间限制,设定了指定等待时间。一般线程由于调用一下方法会处于超时等待状态。

Thread.sleep
Object.wait // 指定超时时间
Thread.join // 指定超时时间
LockSupport.parkNanos
LockSupport.parkUntil

6.Terminated

终止状态。

相关推荐
Yvonne爱编码1 分钟前
Java 中的 hashCode () 与 equals () 核心原理、契约规范、重写实践与面试全解
java·开发语言·数据结构·python·hash
gelald3 分钟前
JVM - 运行时内存模型
java·jvm·后端
老虎06274 分钟前
Java基础面试题(08)—Java(集合—HashMap的使用和实现原理红黑树)
java·开发语言
IT从业者张某某4 分钟前
基于DEVC++实现一个控制台的赛车游戏-02-实现赛车游戏
开发语言·c++·游戏
guygg8818 分钟前
基于数据驱动的模型预测控制电力系统机组组合优化MATLAB实现
开发语言·matlab
lly20240619 分钟前
组合模式:深入理解与实际应用
开发语言
2501_9083298524 分钟前
C++中的备忘录模式
开发语言·c++·算法
左左右右左右摇晃35 分钟前
Java笔记——JMM
java·后端·spring
Schengshuo39 分钟前
Spring学习——新建module模块
java·学习·spring
qq_416018721 小时前
C++与机器学习框架
开发语言·c++·算法