方案一:
1、 查询cpu飘高的进程
top
2、查询cpu飘高的进程的线程
top -H -p [进程id]   
3、讲线程ID转换为16进制(字母要小写)
printf "%x" 281419

4、执行查找
jstack [进程id] |grep -A 10 [线程id的16进制]”

eg:
jstack 281419 |grep -A 10 44b4b

281419


===============
方案二、
4、java应用CPU过高排查思路:
(1)确认CPU过高:
#top   (如果有多个java进程,用“#ps aux|grep java ”确认到底哪个应用的)
(2)查看java进程中CPU较高的线程号
#top -p202 -H   (202 是上面得到的进程号)
得到CPU最高的线程号1300
(3)查询堆栈
#jstack 202 > stack.log   (202 是上面得到的进程号)
(4)确认java代码类
#vim stack.log
搜索其中的关键字“线程号”。如果需要十六进制编码,可使用“printf "%x" 1300”。