Java TheadDump

更多 Java 并發(fā)編程方面的文章栗竖,請參見文集《Java 并發(fā)編程》


基本使用

首先使用 jps -l 查找當(dāng)前所有的 Java 進程寸爆。
隨后使用 jstack -pid 查看特定 Java 進行的 Thread Dump岳颇,如果需要將結(jié)果導(dǎo)出到文件,可以使用 jstack -pid > dump.out饲化。

Thread Dump 包含的內(nèi)容

  • thread name:線程名
  • thread id:線程 ID
  • java.lang.Thread.State:線程狀態(tài)蝌数,包括:
    • NEW
    • RUNNABLE
    • BLOCKED:Waiting for a monitor lock,等待進入 synchronized 代碼塊
    • WAITING:包括三種情況:
      • 當(dāng)前線程調(diào)用了不帶參數(shù)的 obj.wait()
      • 其他線程調(diào)用了不帶參數(shù)的 t2.join()
      • 調(diào)用了 LockSupport.park()
    • TIMED_WAITING:包括三種情況:
      • 當(dāng)前線程調(diào)用了帶參數(shù)的 obj.wait(1000)
      • 其他線程調(diào)用了帶參數(shù)的 t2.join(1000)
      • 當(dāng)前線程調(diào)用了 Thread.sleep(1000)
      • 調(diào)用了 LockSupport.parkNanos()
      • 調(diào)用了 LockSupport.parkUntil()
    • TERMINATED
  • Stack Trace:線程執(zhí)行路徑
  • 鎖定了哪些資源贷祈,在等待哪些資源

示例

執(zhí)行一段導(dǎo)致死鎖的 Java 代碼趋急,參見 Java 死鎖 DeadLock,隨后導(dǎo)出其 TheadDump 文件势誊。

其中的部分內(nèi)容如下:

"Thread-1" #12 prio=5 os_prio=0 tid=0x000000001d5f7000 nid=0x2c48 waiting for monitor entry [0x000000001ea6f000]
   java.lang.Thread.State: BLOCKED (on object monitor)
    at DeadLockThread.run(DeadLockTesting.java:57)
    - waiting to lock <0x000000076b2ba340> (a java.lang.Object)
    - locked <0x000000076b2ba350> (a java.lang.Object)

"Thread-0" #11 prio=5 os_prio=0 tid=0x000000001d5e4000 nid=0x2f7c waiting for monitor entry [0x000000001e7cf000]
   java.lang.Thread.State: BLOCKED (on object monitor)
    at DeadLockThread.run(DeadLockTesting.java:57)
    - waiting to lock <0x000000076b2ba350> (a java.lang.Object)
    - locked <0x000000076b2ba340> (a java.lang.Object)

Found one Java-level deadlock:
=============================
"Thread-1":
  waiting to lock monitor 0x000000001c13c338 (object 0x000000076b2ba340, a java.lang.Object),
  which is held by "Thread-0"
"Thread-0":
  waiting to lock monitor 0x000000001c13c1d8 (object 0x000000076b2ba350, a java.lang.Object),
  which is held by "Thread-1"

Java stack information for the threads listed above:
===================================================
"Thread-1":
    at DeadLockThread.run(DeadLockTesting.java:57)
    - waiting to lock <0x000000076b2ba340> (a java.lang.Object)
    - locked <0x000000076b2ba350> (a java.lang.Object)
"Thread-0":
    at DeadLockThread.run(DeadLockTesting.java:57)
    - waiting to lock <0x000000076b2ba350> (a java.lang.Object)
    - locked <0x000000076b2ba340> (a java.lang.Object)

Found 1 deadlock.

可以看出:

  • Thread-1 鎖定了0x000000076b2ba350呜达, 在等待 monitor 0x000000076b2ba340
  • Thread-0 鎖定了0x000000076b2ba340,在等待 monitor 0x000000076b2ba350
  • 因此發(fā)現(xiàn)了一個死鎖
最后編輯于
?著作權(quán)歸作者所有,轉(zhuǎn)載或內(nèi)容合作請聯(lián)系作者
  • 序言:七十年代末粟耻,一起剝皮案震驚了整個濱河市查近,隨后出現(xiàn)的幾起案子眉踱,更是在濱河造成了極大的恐慌,老刑警劉巖霜威,帶你破解...
    沈念sama閱讀 211,884評論 6 492
  • 序言:濱河連續(xù)發(fā)生了三起死亡事件谈喳,死亡現(xiàn)場離奇詭異,居然都是意外死亡戈泼,警方通過查閱死者的電腦和手機婿禽,發(fā)現(xiàn)死者居然都...
    沈念sama閱讀 90,347評論 3 385
  • 文/潘曉璐 我一進店門,熙熙樓的掌柜王于貴愁眉苦臉地迎上來大猛,“玉大人扭倾,你說我怎么就攤上這事⊥旒ǎ” “怎么了膛壹?”我有些...
    開封第一講書人閱讀 157,435評論 0 348
  • 文/不壞的土叔 我叫張陵蛙紫,是天一觀的道長换衬。 經(jīng)常有香客問我,道長般此,這世上最難降的妖魔是什么唠亚? 我笑而不...
    開封第一講書人閱讀 56,509評論 1 284
  • 正文 為了忘掉前任链方,我火速辦了婚禮,結(jié)果婚禮上趾撵,老公的妹妹穿的比我還像新娘侄柔。我一直安慰自己,他們只是感情好占调,可當(dāng)我...
    茶點故事閱讀 65,611評論 6 386
  • 文/花漫 我一把揭開白布暂题。 她就那樣靜靜地躺著,像睡著了一般究珊。 火紅的嫁衣襯著肌膚如雪薪者。 梳的紋絲不亂的頭發(fā)上,一...
    開封第一講書人閱讀 49,837評論 1 290
  • 那天剿涮,我揣著相機與錄音言津,去河邊找鬼。 笑死取试,一個胖子當(dāng)著我的面吹牛悬槽,可吹牛的內(nèi)容都是我干的。 我是一名探鬼主播瞬浓,決...
    沈念sama閱讀 38,987評論 3 408
  • 文/蒼蘭香墨 我猛地睜開眼初婆,長吁一口氣:“原來是場噩夢啊……” “哼!你這毒婦竟也來了?” 一聲冷哼從身側(cè)響起磅叛,我...
    開封第一講書人閱讀 37,730評論 0 267
  • 序言:老撾萬榮一對情侶失蹤屑咳,失蹤者是張志新(化名)和其女友劉穎,沒想到半個月后弊琴,有當(dāng)?shù)厝嗽跇淞掷锇l(fā)現(xiàn)了一具尸體兆龙,經(jīng)...
    沈念sama閱讀 44,194評論 1 303
  • 正文 獨居荒郊野嶺守林人離奇死亡,尸身上長有42處帶血的膿包…… 初始之章·張勛 以下內(nèi)容為張勛視角 年9月15日...
    茶點故事閱讀 36,525評論 2 327
  • 正文 我和宋清朗相戀三年敲董,在試婚紗的時候發(fā)現(xiàn)自己被綠了紫皇。 大學(xué)時的朋友給我發(fā)了我未婚夫和他白月光在一起吃飯的照片。...
    茶點故事閱讀 38,664評論 1 340
  • 序言:一個原本活蹦亂跳的男人離奇死亡臣缀,死狀恐怖坝橡,靈堂內(nèi)的尸體忽然破棺而出泻帮,到底是詐尸還是另有隱情精置,我是刑警寧澤,帶...
    沈念sama閱讀 34,334評論 4 330
  • 正文 年R本政府宣布锣杂,位于F島的核電站脂倦,受9級特大地震影響,放射性物質(zhì)發(fā)生泄漏元莫。R本人自食惡果不足惜赖阻,卻給世界環(huán)境...
    茶點故事閱讀 39,944評論 3 313
  • 文/蒙蒙 一、第九天 我趴在偏房一處隱蔽的房頂上張望踱蠢。 院中可真熱鬧火欧,春花似錦、人聲如沸茎截。這莊子的主人今日做“春日...
    開封第一講書人閱讀 30,764評論 0 21
  • 文/蒼蘭香墨 我抬頭看了看天上的太陽企锌。三九已至榆浓,卻和暖如春,著一層夾襖步出監(jiān)牢的瞬間撕攒,已是汗流浹背陡鹃。 一陣腳步聲響...
    開封第一講書人閱讀 31,997評論 1 266
  • 我被黑心中介騙來泰國打工, 沒想到剛下飛機就差點兒被人妖公主榨干…… 1. 我叫王不留抖坪,地道東北人萍鲸。 一個月前我還...
    沈念sama閱讀 46,389評論 2 360
  • 正文 我出身青樓,卻偏偏與公主長得像擦俐,于是被迫代替她去往敵國和親脊阴。 傳聞我的和親對象是個殘疾皇子,可洞房花燭夜當(dāng)晚...
    茶點故事閱讀 43,554評論 2 349

推薦閱讀更多精彩內(nèi)容