Warning: file_get_contents(/data/phpspider/zhask/data//catemap/6/multithreading/4.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
您能否挂起Java应用程序并获取其快照';从应用程序中删除线程?_Java_Multithreading_Runtime_Monitoring - Fatal编程技术网

您能否挂起Java应用程序并获取其快照';从应用程序中删除线程?

您能否挂起Java应用程序并获取其快照';从应用程序中删除线程?,java,multithreading,runtime,monitoring,Java,Multithreading,Runtime,Monitoring,我正在研究编写在Java应用程序内部运行的监控代码,定期拍摄运行线程的快照,并在每个线程上显示一些调用堆栈信息 理想情况下,这将扩展用于分析和/或监视 我不想使用外部工具,因为这是出于自我教育的目的 您有没有研究过类的方法,例如Thread.enumerate(),Thread.activeCount(),Thread.getName()?看看ThreadMXBean.dumpAllThreads(boolean,boolean) 您是否尝试过您可以在创建时注册要查看的线程,并使用单独的metr

我正在研究编写在Java应用程序内部运行的监控代码,定期拍摄运行线程的快照,并在每个线程上显示一些调用堆栈信息

理想情况下,这将扩展用于分析和/或监视


我不想使用外部工具,因为这是出于自我教育的目的

您有没有研究过类的方法,例如
Thread.enumerate()
Thread.activeCount()
Thread.getName()

看看
ThreadMXBean.dumpAllThreads(boolean,boolean)


您是否尝试过

您可以在创建时注册要查看的线程,并使用单独的metrics线程进行监视。您可能希望在线程中构建某些度量,例如最近运行时间、当前吞吐量或其他类型的度量的列表。

kill-SIGQUIT{java_process}


将在java进程的stdout中转储所有堆栈跟踪。

我认为没有办法停止所有线程(从java字节码中)。如果您使用JNI启动JVM本身,可能有一种方法。
ThreadMXBean bean = ManagementFactory.getThreadMXBean();
ThreadInfo[] info = bean.dumpAllThreads(true, true);