欧美bbbwbbbw肥妇,免费乱码人妻系列日韩,一级黄片

jstack和線程dump實例解析

 更新時間:2018年01月02日 11:00:39   作者:一人淺醉-  
這篇文章主要介紹了jstack和線程dump實例解析,具有一定借鑒價值,需要的朋友可以參考下

jstack定義:

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

基本介紹:

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

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

命令格式:

jstack [ option ] pid

基本參數(shù):

-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 5516
Full thread dump Java HotSpot(TM) 64-Bit Server VM (24.79-b02 mixed mode):
 
"DestroyJavaVM" prio=6 tid=0x000000000027d800 nid=0x1bb0 waiting on condition [0
x0000000000000000]
 java.lang.Thread.State: RUNNABLE
 
"Thread-1" prio=6 tid=0x000000000cb13800 nid=0x19ac waiting for monitor entry [0
x000000000d67f000]
 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 [0x
000000000d48f000]
 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行出現(xiàn)了阻塞,然后就是要優(yōu)化這個函數(shù)了。

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

總結

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

相關文章

  • Java重寫與重載之間的區(qū)別

    Java重寫與重載之間的區(qū)別

    本文主要介紹了Java重寫與重載之間的區(qū)別。具有一定的參考價值,下面跟著小編一起來看下吧
    2017-01-01
  • 一文詳解如何查看jdk版本及安裝路徑

    一文詳解如何查看jdk版本及安裝路徑

    這篇文章主要給大家介紹了關于如何查看jdk版本及安裝路徑的相關資料,JDK是Java語言的軟件開發(fā)工具包,主要用于移動設備、嵌入式設備上的java應用程序,文中通過圖文介紹的非常詳細,需要的朋友可以參考下
    2023-10-10
  • 一篇文章教你如何用Java自定義一個參數(shù)校驗器

    一篇文章教你如何用Java自定義一個參數(shù)校驗器

    這篇文章主要介紹了使用java自定義一個參數(shù)校驗器,文中通過示例代碼介紹的非常詳細,對大家的學習或者工作具有一定的參考學習價值,需要的朋友們下面隨著小編來一起學習學習
    2021-09-09
  • 如何利用Jackson序列化忽略指定類型的屬性詳解

    如何利用Jackson序列化忽略指定類型的屬性詳解

    這篇文章主要給大家介紹了關于如何利用Jackson序列化忽略指定類型的屬性,文中通過示例代碼介紹的非常詳細,對大家的學習或者工作具有一定的參考學習價值,需要的朋友們下面隨著小編來一起學習學習吧
    2018-11-11
  • Lucene詞向量索引文件構建源碼解析

    Lucene詞向量索引文件構建源碼解析

    這篇文章主要為大家介紹了Lucene詞向量索引文件構建源碼解析,有需要的朋友可以借鑒參考下,希望能夠有所幫助,祝大家多多進步,早日升職加薪
    2022-11-11
  • Java 中引入內部類的意義?

    Java 中引入內部類的意義?

    這篇文章主要介紹了Java 中引入內部類的意義?文中通過示例代碼介紹的非常詳細,對大家的學習或者工作具有一定的參考學習價值,,需要的朋友可以參考下
    2019-06-06
  • SpringBoot項目中通過@Value給參數(shù)賦值失敗的解決方案

    SpringBoot項目中通過@Value給參數(shù)賦值失敗的解決方案

    springboot項目中通過@Value給屬性附值失敗,給參數(shù)賦值失敗,打印為空值,文中通過代碼示例給大家介紹的非常詳細,對大家解決問題有一定的幫助,需要的朋友可以參考下
    2024-04-04
  • Java內存模型可見性問題相關解析

    Java內存模型可見性問題相關解析

    這篇文章主要介紹了Java內存模型可見性問題相關解析,文中通過示例代碼介紹的非常詳細,對大家的學習或者工作具有一定的參考學習價值,需要的朋友可以參考下
    2019-12-12
  • 完整的logback配置示例ELK整合包含生成json日志

    完整的logback配置示例ELK整合包含生成json日志

    這篇文章主要為大家介紹了完整的logback配置示例ELK整合包含生成json日志,有需要的朋友可以借鑒參考下,希望能夠有所幫助,祝大家多多進步,早日升職加薪
    2022-03-03
  • java中的PriorityQueue類過程詳解

    java中的PriorityQueue類過程詳解

    這篇文章主要介紹了java中的PriorityQueue類,本文通過實例代碼給大家介紹的非常詳細,對大家的學習或工作具有一定的參考借鑒價值,需要的朋友可以參考下
    2021-09-09

最新評論