使用浏览器来查看线程堆栈
来源:互联网 发布:网络架构师考试 编辑:程序博客网 时间:2024/04/28 13:19
使用浏览器来查看线程堆栈
jstack
命令用于生成虚拟机当前时刻的线程快照(一般称为threaddump 或 javacore文件)。线程快照就是当前虚拟机内每一条线程正在执行的方法堆栈的集合。
生成线程快照的主要目的是定位线程出现长时间停顿的常见原因。
线程出现停顿的时候通过jstack来查看各个线程的调用堆栈,就可以知道没有响应的线程到底在后台做什么事情,或者等待什么资源。
JDK中,java.lang.Thread 类新增了一个getAllStackTraces()方法 用于获取虚拟机中所有线程StackTraceElement 对象。使用这个方法可以通过简单的几行代码就完成jstack 的大部分功能。
<%@ page import="java.util.Map" %><body> <pre> <% for(Map.Entry<Thread, StackTraceElement[]> stackTrace : Thread.getAllStackTraces().entrySet()){ Thread thread = (Thread)stackTrace.getKey(); StackTraceElement[] stack = ( StackTraceElement[])stackTrace.getValue(); if(thread.equals(Thread.currentThread())) continue; out.print("\n 线程:" + thread.getName() + "\n"); for(StackTraceElement element : stack){ out.print("\t" + element + "\n"); } } %> </pre> </body>
运行后即可在JSP页面查看线程运行状况。
如图:
—-<<深入理解JVM虚拟机>>读书笔记
0 0
- 使用浏览器来查看线程堆栈
- 使用InspectiveC来查看调用堆栈
- Java线程堆栈信息查看
- 使用eclipse查看堆栈分配
- 使用堆栈来模拟队列
- 查看java当前线程的堆栈信息
- Linux查看线程的堆栈信息
- jstack 命令查看JAVA线程堆栈
- Android 中利用异常来查看函数调用堆栈
- 使用jstack 查看线程
- linux server 查看进程堆栈,看线程在忙啥
- 轻巧的线程堆栈查看工具Hot Threads
- 举例说明如何实现使用线程来实现UC浏览器的等待页面的效果
- 线程堆栈大小 pthread_attr_setstacksize 的使用
- 使用Java线程堆栈分析问题
- 线程堆栈大小 pthread_attr_setstacksize 的使用
- 线程堆栈大小的使用介绍
- 线程堆栈大小的使用介绍
- 内存中常见异常值的解释(比如0xcccccccc、0xcdcdcdcd和 0xfeeefeee 异常值 )
- Get中文请求乱码
- rcv_msg.c
- java 性能优化:提升 java 代码的运行效率
- RedHat虚拟机打不开磁盘问题的解决办法
- 使用浏览器来查看线程堆栈
- Mac 下Android Studio2.3更新Gradle3.3踩坑记录
- onvif在android上实现局域网搜索得到当前编码配置
- 关于ios::sync_with_stdio(false);和 cin.tie(0)加速c++输入输出流
- 字符串转为整数
- Android Studio下修改应用的包名
- Oozie分布式工作流——EL表达式
- Android软件设计架构简介
- 整数分解为若干项之和——递归思想