Java并发03:Java线程的生命周期 - 6种状态详解

引言:一次生产事故的排查 凌晨2点,生产环境告警:CPU使用率持续100%。 # 使用top命令查看,发现Java进程CPU占用异常 $ top PID USER %CPU %MEM COMMAND 12345 app 850.0 45.2 java -jar app.jar ← 8核CPU,占用850% 使用 jstack 查看线程状态: $ jstack 12345 > thread-dump.txt # 查看线程dump "http-nio-8080-exec-45" #78 daemon prio=5 os_prio=0 tid=0x00007f8c4c001000 nid=0x1a2b RUNNABLE java.lang.Thread.State: RUNNABLE at java.net.SocketInputStream.socketRead0(Native Method) ... "DB-Pool-Worker-23" #56 daemon prio=5 os_prio=0 tid=0x00007f8c48005000 nid=0x1a1f WAITING java.lang.Thread.State: WAITING (parking) at sun.misc.Unsafe.park(Native Method) ... "Task-Executor-8" #45 daemon prio=5 os_prio=0 tid=0x00007f8c44003000 nid=0x1a0d BLOCKED java.lang.Thread.State: BLOCKED (on object monitor) at com.example.Service.process(Service.java:42) - waiting to lock <0x000000076b5d4c00> (a java.lang.Object) ... RUNNABLE、WAITING、BLOCKED… 这些状态是什么意思? ...

2025-11-20 · maneng

如约数科科技工作室

浙ICP备2025203501号

👀 本站总访问量 ...| 👤 访客数 ...| 📅 今日访问 ...