查看线程
top -p pid再按H或者直接输入top−bH−d3−p{pid}
jstack定位
.通过jstack命令dump出堆栈
“AppController_ThreadPool_L2_Pool Thread” daemon prio=10 tid=0x0000000051c2b000 nid=0x7bb3 in Object.wait() [0x000000005e3c5000]
java.lang.Thread.State: TIMED_WAITING (on object monitor)
at java.lang.Object.wait(Native Method)
at org.company.threadpool.ThreadPoolImplPoolThread.run(ThreadPoolImpl.java:142)−locked<0x00002aaca30341a8>(aorg.company.threadpool.ThreadPoolImplPoolThread)
其中的nid就是线程的编码,只不过是经过了16进制的转换。
即十进制的31776对应的十六进制)0x7bb3,定位到线程后一切好办。
本文介绍了如何使用jstack命令来定位Java线程问题,包括如何查看线程堆栈跟踪、理解堆栈信息以及如何找到特定线程。通过实例演示了如何使用jstack命令并解析输出结果,帮助开发者解决线程等待和死锁等问题。
700

被折叠的 条评论
为什么被折叠?



