“thread dump”是什么意思
我想知道java线程转储是什么。 有人可以帮我理解一下线程转储是什么以及它与正在运行的java程序有什么关系?
Java线程转储是一种查找JVM中每个线程在特定时间点执行操作的方法。 如果您的Java应用程序有时在负载下运行时似乎挂起,这尤其有用,因为对转储的分析将显示线程被卡住的位置。
您可以通过运行kill -QUIT
在Unix/Linux
下生成线程转储,并在Windows
下通过命中Ctl + Break
。
要了解如何从JVM获取线程转储, 请参见此处
要知道如何创建线程转储, 请参见此处
来自http://www.javasanity.org/understandingthreaddumps :
线程转储是一个快照,确切地说正在执行的是什么
有很多资源可以帮助您理解/分析线程转储(例如http://www.javacodegeeks.com/2012/03/jvm-how-to-analyze-thread-dump.html )。
您可能还会发现以下问题很有用: 线程转储分析工具/方法
“线程转储是Java虚拟机(JVM)中当前活动的所有Java线程的列表。” ( 链接 )
通常,此列表中的线程由其当前堆栈跟踪和线程的状态(运行,挂起,锁定等)表示。
线程转储是程序失败时调用堆栈状态的输出。 这应该可以帮助你解决程序中出错的问题,因为它可以准确显示程序正在做什么(以及为什么)。
你有需要看的线程转储吗?