jstack用于打印出给定的java进程ID或core file或远程调试服务的Java堆栈信息,如果是在64位机器上,需要指定选项"-J-d64",Windows的jstack使用方式只支持以下的这种方式:
jstack [-l][F] pid
如果java程序崩溃生成core文件,jstack工具可以用来获得core文件的java stack和native stack的信息,从而可以轻松地知道java程序是如何崩溃和在程序何处发生问题。另外,jstack工具还可以附属到正在运行的java程序中,看到当时运行的java程序的java stack和native stack的信息, 如果现在运行的java程序呈现hung的状态,jstack是非常有用的。进程处于hung死状态可以用-F强制打出stack。
dump 文件里,值得关注的线程状态有:
死锁,Deadlock(重点关注)
执行中,Runnable
等待资源,Waiting on condition(重点关注)
等待获取监视器,Waiting on monitor entry(重点关注)
暂停,Suspended
对象等待中,Object.wait() 或 TIMED_WAITING
阻塞,Blocked(重点关注)
停止,Parked

实例一:Waiting to lock 和 Blocked

复制代码
"RMI TCP Connection(267865)-172.16.5.25" daemon prio=10 tid=0x00007fd508371000 nid=0x55ae waiting for monitor entry [0x00007fd4f8684000]
java.lang.Thread.State: BLOCKED (on object monitor)
at org.apache.log4j.Category.callAppenders(Category.java:201)

  • waiting to lock <0x00000000acf4d0c0> (a org.apache.log4j.Logger)
    at org.apache.log4j.Category.forcedLog(Category.java:388)
    at org.apache.log4j.Category.log(Category.java:853)
    at org.apache.commons.logging.impl.Log4JLogger.warn(Log4JLogger.java:234)
    at com.tuan.core.common.lang.cache.remote.SpyMemcachedClient.get(SpyMemcachedClient.java:110)

图形化工具JvisualVM的使用
JDK1.6版本及以上自带JvisualVM工具,此工具功能比较全面,内存分析,线程分析,JAVA实例、方法调用分析,这里先说下线程分析的使用
如图:

线程dump功能如图:

线程dump详细信息:

最新文章

  1. Linux系统1.md
  2. JDBC接口规范
  3. 线程局部变量ThreadLocal的原理及使用范围_1
  4. STL源码中map和set中key值不能修改的实现
  5. Android-Context的IO功能
  6. C语言实现有序二叉树(1)
  7. linux嵌入式: 实现自己的tree命令
  8. Ionic2中集成腾讯Bugly之自定义插件
  9. Storm入门之第二章
  10. Mysql性能优化之覆盖索引
  11. Linux - IDA - 安装 ( 带F5功能 )
  12. linux $参数
  13. java框架篇---Struts2 本地化/国际化(i18n)
  14. Codeforces Round #475 (Div. 2) C - Alternating Sum
  15. signal.h中的宏定义SIG_DFL及SIG_IGN
  16. 关于font-size对垂直居中影响的问题
  17. 实现Spring管理struts的Action
  18. LR监控apache服务器
  19. 用tophat和cufflinks分析RNAseq数据[转载]
  20. 家用wifi信号覆盖增强扩展实用指南

热门文章

  1. Rol租车网项目总结
  2. java通过实体类组装报文
  3. 基于Spark Mllib的Spark NLP库
  4. 寒哥教你学iOS - 经验漫谈
  5. 2018-8-10-win10-uwp-如何创建修改保存位图
  6. 在oracle中操作数据——使用特点的格式插入日期 sql函数的使用——日期函数
  7. 强制去除xcode的编译警告
  8. HLSL效果框架
  9. W600 一块新的 KiCad PCB
  10. P2P需集齐四大证照