JAVA线程堆栈问题定位第一讲
一、如何制作线程堆栈a.本地线程与java线程对应本地线程: 是指java线程对应的虚拟机中的本地线程,java语言中的线程是依附于JVM虚拟机中的本地线程来运行,实际是本地线程运行java线程代码。java代码中创建一个thread,虚拟机在运行期间就会创建一个对应的本地线程,而这个本地线程才是真正的线程实体打印java虚拟机本地线程的命令:
·
一、如何制作线程堆栈
a.本地线程与java线程对应
本地线程: 是指java线程对应的虚拟机中的本地线程,java语言中的线程是依附于JVM虚拟机中的本地线程来运行,实际是本地线程运行java线程代码。java代码中创建一个thread,虚拟机在运行期间就会创建一个对应的本地线程,而这个本地线程才是真正的线程实体
打印java虚拟机本地线程的命令:
ps -ef|grep java 获取java进程ID
使用pstack获得JAVA虚拟机本地线程的堆栈
其中的黄色部分即为java线程中的nid值,线程快照中的NID因为16进制表示,可以将其转换十进制表示,通本地线程中的线程转换成十六进制后,与线程快照中的十六进制进行对比,如果相同即为同一线程。
如还没懂,在来一幅图进行说明:
从上图可知,java虚拟本地线程与java线程指的是同一东西,只有本地线程才是真正的线程实体,java实际上指的就是这个本地线程的,它并不是另外存在的实体,这一点需要大家明白。
b:使用jstack命令制作线程快照:
jstack java线程ID,如下图,图中的内容只截取了部分的线程
更多推荐
已为社区贡献2条内容
所有评论(0)