您的位置:首页 > 编程语言 > Java开发

获取Java虚拟机正在运行所有线程的堆栈信息

2017-07-09 00:03 1001 查看
在Java.lang.Thread中提供了getAllStackTraces()方法用于获取虚拟机中所有线程的StackTraceElement对象。

下面写了个Demo

import java.util.Map;

/**
* Created by wzj on 2017/7/8.
*/
public class MemoryMonitor
{
public static void main(String[] args)
{
for (Map.Entry<Thread,StackTraceElement[]> entry : Thread.getAllStackTraces().entrySet())
{
Thread thread = entry.getKey();

StackTraceElement[] stackTraceElements = entry.getValue();

if (thread.equals(Thread.currentThread()))
{
continue;
}

System.out.println("\n线程: " + thread.getName() + "\n");
for (StackTraceElement element : stackTraceElements)
{
System.out.println("\t" + element + "\n");
}
}
内容来自用户分享和网络整理,不保证内容的准确性,如有侵权内容,可联系管理员处理 点击这里给我发消息
标签: