我想知道java线程转储是什么。 有人可以帮我理解一下线程转储是什么以及它与正在运行的java程序有什么关系?
答案 0 :(得分:31)
Java线程转储是一种查找JVM中每个线程在特定时间点执行操作的方法。如果您的Java应用程序在加载下运行时有时似乎挂起,这尤其有用,因为对转储的分析将显示线程被卡住的位置。
您可以通过运行Unix/Linux
在kill -QUIT <pid>
下生成线索转储,并通过点击Windows
在Ctl + 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)
线程转储是程序失败时调用堆栈状态的输出。这应该可以帮助你解决程序中出错的问题,因为它显示了程序正在做什么(以及为什么)。
您是否有需要查看的线程转储?