当运行jstack时,一个stack的内容如下:
Full thread dump Java HotSpot(TM) 64-Bit Server VM (23.25-b01 mixed mode):
"Attach Listener" daemon prio=10 tid=0x00000000029eb800 nid=0x5cac waiting on condition [0x0000000000000000]
java.lang.Thread.State: RUNNABLE
Locked ownable synchronizers:
- None
tid, Java memory address of its internal Thread control structure.
nid, native thread id. 每一个nid对应于linux下的一个tid, 即lwp (light weight process, or thread).
linux下的lwp可以在/proc/pid/task/下查看。
需要注意的是,jstack中的nid是十六进制数,task目录下为十进制数,需要转换一致后才可以比较。
linux下的lwp也可以通用ps来查看
ps -mp pid号 -o THREAD,tid,lwp,nlwp,time,rss,size,%mem
顺便说一句,上面ps语句中的WCHAN的含义:
WCHAN : 若该进程在睡眠,则显示睡眠中的系统函数名