zoukankan      html  css  js  c++  java
  • 访问线程的堆栈

    以下代码显示了如何获取线程的堆栈帧。Throwable对象在创建线程的点处捕获线程的堆栈。参考以下代码 -

    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    11
    12
    13
    14
    15
    16
    17
    18
    19
    20
    21
    22
    23
    24
    25
    26
    27
    28
    29
    public class Main {
      public static void main(String[] args) {
        m1();
      }
     
      public static void m1() {
        m2();
      }
     
      public static void m2() {
        m3();
      }
      public static void m3() {
        Throwable t = new Throwable();
        StackTraceElement[] frames = t.getStackTrace();
        printStackDetails(frames);
      }
      public static void printStackDetails(StackTraceElement[] frames) {
        System.out.println("Frame count: " + frames.length);
        for (int i = 0; i < frames.length; i++) {
          int frameIndex = i; // i = 0 means top frame
          System.out.println("Frame Index: " + frameIndex);
          System.out.println("File Name: " + frames[i].getFileName());
          System.out.println("Class Name: " + frames[i].getClassName());
          System.out.println("Method Name: " + frames[i].getMethodName());
          System.out.println("Line Number: " + frames[i].getLineNumber());
        }
      }
    }

    上面的代码生成以下结果。

    点击链接查看详细内容

  • 相关阅读:
    快速排序及其优化
    JVM基础:深入学习JVM堆与JVM栈(转)
    java 反射简介(转载)
    java 泛型简介(转载)
    Java 注解简介
    JVM入门必看——JVM结构
    Java多线程详解(转载)
    SpringMVC 实现文件的上传与下载
    死锁简介
    SQL的模糊查询(转载)
  • 原文地址:https://www.cnblogs.com/hane/p/7339145.html
Copyright © 2011-2022 走看看