“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线程的列表。” ( 链接 )

通常,此列表中的线程由其当前堆栈跟踪和线程的状态(运行,挂起,锁定等)表示。

线程转储是程序失败时调用堆栈状态的输出。 这应该可以帮助你解决程序中出错的问题,因为它可以准确显示程序正在做什么(以及为什么)。

你有需要看的线程转储吗?