- 現象:登陸機器發現有卡頓現象,因而top發現負載特別高,而且發現一進程佔滿cpu
- 定位:記錄下該進程號,而後top -Hp <pid>找出佔用cpu太高的幾個線程,記錄線程id,根據這幾個線程id到程序線程棧中找出對應的線程。
(上面這部分沒有保存操做截圖)線程
jstack <pid>打印線程棧,進程
把其中一個佔用cpu太高的線程id=23564換算成16進製爲5C0C,到線程棧中查找:登錄
![](http://static.javashuo.com/static/loading.gif)
根據代碼行定位到對應的線程。程序
- 解決:最終發現這是一個輪詢線程,每次輪詢應該停頓一段時間釋放cpu,在輪詢裏面加入代碼Thread.sleep(100);便可解決問題。