1.top命令查看占用CPU的情况

2.找到那个进程占用的CPU最高,并记录下进程ID (40940)
3.查看进程中的线程信息ps H -eo pid,tid,%cpu | grep 进程ID
找到进程对应的线程id
或者 top -H -p 进程id 直接打印该进程下的所有线程使用率信息

然后把线程id转为16进制
printf "%x\n" 18745
# 获取指定线程的堆栈信息
jstack <pid> | grep 十六进制线程名称 -A 20 显示前面多少行 (-B显示后面多少行) 此时就定位出来代码问题

4.jstack 进程id
jstack 4033644 > jstack.log 也可以把日志写到文件去定位

printf "%x\n" 123255
最后对比转换出来的16进制的线程id和jstack打印的线程id对比,从而找到有问题的代码