明天你好的专栏

分享学习的点点滴滴,欢迎交流。

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

在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");
            }
        }
阅读更多
版权声明:本文为博主原创文章,未经博主允许不得转载。 https://blog.csdn.net/u010889616/article/details/74855170
个人分类: Java基础
想对作者说点什么? 我来说一句

没有更多推荐了,返回首页

加入CSDN,享受更精准的内容推荐,与500万程序员共同成长!
关闭
关闭