线程阻塞排查

1.查询当前正在运行的java进程的PID

jps -v

2.获取指定线程信息并生成日志

jstack -f PID >demo.log

3.结合线程状态及线程执行类全名锁定问题代码具体位置

NEW初始:刚创建的线程,还没有调start方法
RUNNABLE运行:java线程中将就绪(ready)和运行中(running)两种状态笼统的称为“运行”。该状态的线程位于可运行线程池中,等待被线程调度选中,获取CPU的使用权,此时处于就绪状态(ready)。就绪状态的线程在获得CPU时间片后变为运行中状态(running)
BLOCKED阻塞:进入该状态的线程需要等待其它线程释放锁
WAITING等待:进入该状态的线程需要等待其他线程做出一些特定动作(通知或中断)
TIMED_WAITING超时等待:进入该状态线程可通过之前设定的等待时间自行返回
TERMINATED终止:表示该线程已经执行完毕

发表回复

您的电子邮箱地址不会被公开。

3 × 4 =