1.找到最耗CPU的進程:top命令查看進程運行信息列表,鍵入P (大P),進程按照CPU使用率從高到低排序。
2. 找到最耗CPU的線程:top -Hp 進程PID命令查看該進程下所有的線程,鍵入P (大P),進程按照CPU使用率從高到低排序。
3.將線程PID轉化爲16進制:printf “%X\n” 線程PID。是因爲堆棧裏,線程id是用16進製表示的(十進制6524轉換爲十六進制就是197c)。
4.查看堆棧,找到線程:jstack 進程PID |grep 線程PID轉換後的16進制 -C10(顯示匹配行前後各10行) --color。例如:jstack 6505 |grep 0x197c -C10 --color,看到了該線程(Thread-9)正在執行代碼的堆棧。
測試代碼: