轉載:http://blog.csdn.net/everlasting_188/article/details/51943095
1、jstack重點關注
命令行:jstack [-l][F] pid ,可以進行的dump文件導出
dump 文件里,值得關注的線程狀態有:
死鎖,Deadlock(重點關注)
執行中,Runnable
等待資源,Waiting on condition(重點關注)
等待獲取監視器,Waiting on monitor entry(重點關注)
暫停,Suspended
對象等待中,Object.wait() 或 TIMED_WAITING
阻塞,Blocked(重點關注)
停止,Parked
2、工具
2.1 本地分析工具
下載地址: https://java.net/projects/tda/downloads
說明:
1、區域1:線程和monitor區域,顯示總的線程,休眠線程和monitor。點log文件可以顯示原始的log文件。
2、區域2:選擇區域1中的對象,顯示對象相關狀態
3、區域3:選擇區域2后,下面顯示對應的狀態
4、區域4:選擇菜單的filter,可以增加過濾器來對對應的線程進行查看
說明:選擇monitors后,選擇對應的對象,可以顯示對應的概要說明。點單個對象,可以看到被那個對象locked
TDA還有一個功能還可以嵌入到jconsole中,自己沒有試驗。
2.2在線分析工具
地址見: http://spotify.github.io/threaddump-analyzer/
3、參考文檔
http://www.cnblogs.com/nexiyi/p/java_thread_jstack.html 總結的不錯的一篇文章,分析方法不錯。
http://blog.sina.com.cn/s/blog_855eab95010157uv.html