• 技术文章 >java >java基础

    java中Thread Dump是什么

    小妮浅浅小妮浅浅2021-06-18 09:43:57原创2948

    说明

    1、ThreadDump用于诊断Java应用程序的问题,可用于查找存储器泄漏,发现死锁线程等。

    2、该系统可获得线程、线程运行状态、标识、调用等信息,包括完整的类名、执行方法、源代码所在行数等。

    特点

    可用于各种操作系统;

    可以在各种Java应用服务器下使用;

    可以在不影响系统性能的情况下使用;

    问题可以直接定位在应用程序的代码行上。

    实例

    public class JStack {
                public static void main(String[] args) throws Exception {
                   ...
                        String pid = args[optionCount];
                        String params[];
                        if (locks) {
                            params = new String[] { "-l" };
                        } else {
                            params = new String[0];
                        }
                        runThreadDump(pid, params);
                    ...
                }
                // Attach to pid and perform a thread dump
                private static void runThreadDump(String pid, String args[])
                        throws Exception {
                    VirtualMachine vm = null;
                    try {
                        vm = VirtualMachine.attach(pid);
                    } catch (Exception x) {
                       ...
                    }
                    // Cast to HotSpotVirtualMachine as this is implementation specific
                    // method.
                    InputStream in = ((HotSpotVirtualMachine) vm)
                            .remoteDataDump((Object[]) args);
                    // read to EOF and just print output
                    byte b[] = new byte[256];
                    int n;
                    do {
                        n = in.read(b);
                        if (n > 0) {
                            String s = new String(b, 0, n, "UTF-8");
                            System.out.print(s);
                        }
                    } while (n > 0);
                    in.close();
                    vm.detach();
                }

    以上就是java中Thread Dump的介绍,希望对大家有所帮助。更多Java学习指路:Java基础

    本教程操作环境:windows7系统、java10版,DELL G3电脑。

    专题推荐:java threaddump
    上一篇:java内部类的内存泄漏原因 下一篇:java Thread的状态分析

    相关文章推荐

    • java Channel是什么• java中jstack是什么• java使用JConsole检测死锁• java线程池死锁的产生及处理• java中default如何操作接口• java集合排序的两种方法• java函数式接口是什么• java中lambda访问外部变量• java Predicate是什么• java Function怎么用?• java中Supplier是什么?

    全部评论我要评论

    © 2021 Python学习网 苏ICP备2021003149号-1

  • 取消发布评论
  • 

    Python学习网