“thread dump”是什么意思

时间:2012-09-05 08:08:29

标签: java multithreading

我想知道java线程转储是什么。 有人可以帮我理解一下线程转储是什么以及它与正在运行的java程序有什么关系?

4 个答案:

答案 0 :(得分:31)

Java线程转储是一种查找JVM中每个线程在特定时间点执行操作的方法。如果您的Java应用程序在加载下运行时有时似乎挂起,这尤其有用,因为对转储的分析将显示线程被卡住的位置。

您可以通过运行Unix/Linuxkill -QUIT <pid>下生成线索转储,并通过点击WindowsCtl + Break下生成。

知道如何从JVM see here

获取线程转储

知道如何创建线程转储see here

答案 1 :(得分:16)

来自http://www.javasanity.org/understandingthreaddumps

  

线程转储是一个正好在某个时刻正在执行的内容的快照

有很多资源可以帮助您理解/分析线程转储(例如http://www.javacodegeeks.com/2012/03/jvm-how-to-analyze-thread-dump.html)。

您可能还会发现以下问题很有用:Thread Dump Analysis Tool / Method

答案 2 :(得分:2)

“线程转储是Java虚拟机(JVM)中当前活动的所有Java线程的列表。”link

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

答案 3 :(得分:1)

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

您是否有需要查看的线程转储?