操作系統(tǒng):centos7
這里我們模擬一個CPU占用100%的程序,程序很簡單死循環(huán)。
運行該程序,然后通過top命名查看:
找到執(zhí)行CPU占用高的JAVA進程,對應(yīng)的PID為510
接著使用如下命令查看具體是哪個線程執(zhí)行CPU過高
top -Hp 510
-H:顯示線程信息
這里發(fā)現(xiàn)PID為511的線程執(zhí)行CPU占用過高。
接下來通過jstack -l 510 來查看當(dāng)前java程序的線程棧,同時將我們上一步查找到的CPU執(zhí)行過高的線程PID 511 轉(zhuǎn)換成16進制 :511===》1FF
這樣我們就定位到了我們程序問題所在的位置。接下來我們檢查代碼即可。
完畢!!!