国产探花免费观看_亚洲丰满少妇自慰呻吟_97日韩有码在线_资源在线日韩欧美_一区二区精品毛片,辰东完美世界有声小说,欢乐颂第一季,yy玄幻小说排行榜完本

首頁 > 開發 > Java > 正文

jstack和線程dump實例解析

2024-07-13 10:15:47
字體:
來源:轉載
供稿:網友

jstack定義:

jstack是Java虛擬機自帶的一種堆棧跟蹤工具。

基本介紹:

jstack用于生成java虛擬機當前時刻的線程快照。線程快照是當前java虛擬機內每一條線程正在執行的方法堆棧的集合,生成線程快照的主要目的是定位線程出現長時間停頓的原因,如線程間死鎖、死循環、請求外部資源導致的長時間等待等。

線程出現停頓的時候通過jstack來查看各個線程的調用堆棧,就可以知道沒有響應的線程到底在后臺做什么事情,或者等待什么資源。

命令格式:

jstack [ option ] pid

基本參數:

-F 當'jstack [-l] pid'沒有相應的時候強制打印棧信息

-l 長列表. 打印關于鎖的附加信息,例如屬于java.util.concurrent的ownable synchronizers列表.

-m 打印java和native c/c++框架的所有棧信息. -h | -help打印幫助信息

pid 需要被打印配置信息的java進程id,可以用jps工具查詢

案例

C:/Users/Administrator>jstack 5516Full thread dump Java HotSpot(TM) 64-Bit Server VM (24.79-b02 mixed mode): "DestroyJavaVM" prio=6 tid=0x000000000027d800 nid=0x1bb0 waiting on condition [0x0000000000000000] java.lang.Thread.State: RUNNABLE "Thread-1" prio=6 tid=0x000000000cb13800 nid=0x19ac waiting for monitor entry [0x000000000d67f000] java.lang.Thread.State: BLOCKED (on object monitor) at thread.DeadLockDemo$2.run(DeadLockDemo.java:35) - waiting to lock <0x00000007d5a9be88> (a java.lang.String) - locked <0x00000007d5a9beb8> (a java.lang.String) at java.lang.Thread.run(Unknown Source) "Thread-0" prio=6 tid=0x000000000cb0e800 nid=0x6bc waiting for monitor entry [0x000000000d48f000] java.lang.Thread.State: BLOCKED (on object monitor) at thread.DeadLockDemo$1.run(DeadLockDemo.java:21) - waiting to lock <0x00000007d5a9beb8> (a java.lang.String) - locked <0x00000007d5a9be88> (a java.lang.String) at java.lang.Thread.run(Unknown Source)

這里運行了一段死鎖code,導致程序中的兩個線程都在等待對方釋放鎖,造成程序死鎖。

從這段代碼中可以明確的看出是 DeadLockDemo.class 中的第35行,和21行出現了阻塞,然后就是要優化這個函數了。

PS : 在實際運行中,往往一次 dump的信息,還不足以確認問題。建議產生三次 dump信息,如果每次 dump都指向同一個問題,我們才確定問題的典型性。

總結

以上就是本文關于jstack和線程dump實例解析的全部內容,希望對大家有所幫助。感興趣的朋友可以繼續參閱本站其他相關專題,如有不足之處,歡迎留言指出。感謝朋友們對本站的支持!


注:相關教程知識閱讀請移步到JAVA教程頻道。
發表評論 共有條評論
用戶名: 密碼:
驗證碼: 匿名發表
主站蜘蛛池模板: 永定县| 东丽区| 巴塘县| 郸城县| 阳城县| 丹巴县| 西宁市| 淮南市| 西畴县| 保定市| 塔城市| 胶州市| 和静县| 伽师县| 庆云县| 武穴市| 济阳县| 通州区| 宜黄县| 海宁市| 安仁县| 城固县| 抚顺市| 珲春市| SHOW| 方山县| 赤壁市| 瓦房店市| 临猗县| 余江县| 固原市| 阿坝| 南平市| 澎湖县| 分宜县| 新竹市| 班玛县| 酒泉市| 永城市| 小金县| 横山县|