![](http://d.aap5.com/20230209/t0125055f63a74d9ec5.webp)
Thread Dump是非常有用的诊断Java应用问题的工具,每一个Java虚拟机都末运手陈社迅有及时生成显示所有线程在某一点状态的thread来自-dump的能力360百科。虽然各个 Java虚拟机thread dump打印输圆装世仍出格式上略微有一些不同,但是Thread dumps出来的信息包含线程;线程的运行状态、标识和调用的堆栈;调用的堆栈包含完整的类名,所执行的方法,如果可能的话还有源代码的行数。
- 中文名称 线程转储
- 外文名称 ThreadDump
- 属性 诊断Java应用问题的工具
- 能力 某一点状态的thread-dump
- 线程 运行状态、标识和调用的堆栈
系统特点
1. 能在各种操作系统下使用
来自 2. 能在各种Java应用服务器下使用
3求. 可以在生产环境下使用而不影响系统的性能
360百科 4. 可以将问题直接定位到应用程序的代码行上
诊断的问题
1. 查找内存泄露,常见的是程序里load大量的数据到缓存
2. 发现死锁线程
常见线程状态
IBM JVM常见误圆身买施终协消结线程状态
在IBM JVM产生的ja来自vacore或者Threaddump文件中
Idle线程:一个已经准备好接受请求的线程,但是没有和插件或者客户端建立连接
Keep-Alive线程:是一个已经准备好接受请求的线程,并且已解经和插件或者客户端建立连接
正在接受请求的线程:是一个线程正在读取request的内容或者头部
Sun JVM的常见线360百科程状态
对于thr在按长贵ead dump信息,主要关注的是线程的状态和其执行堆栈
线站重府燃扩重袁些输充均程的状态一般为三类
Runnable(R):当前可雷及互林反福就证导以运行的线程
Waiting on mon器谓率步真报适itor(CW):线程主动wait
Waiting for monitor entry(MW):线程等锁
一般关注的都是第一和第三种状态的线程
Cpu很忙则关注r果秋弱相移越屋unnable的线探衡十检配往旧析弦程
Cpu闲则关注waiting for monitor entry的线程
一种典型的死锁是由于在server端应用(比如servlet)中请求由同一weblogic实答千斗缩空阿挥送种从假例server的资源染圆排神,解决办法就是将该servlet放到另外的执行最改领晶根列沙击合队列里去执行 。