JVM 被阻塞,没有有用的线程信息

问题描述 投票:0回答:1

对不起我的台球英语。 我有一个jar程序,我用 java -jar XX.jar 调用它,但有时这个jar被阻止并且不正常退出,只是被阻止并且没有响应,并且 jstack 不起作用,我必须添加 -F 标志,即 jstack -F > jstack.log,这是输出:

Debugger attached successfully.
Server compiler detected.
JVM version is 25.144-b01
Deadlock Detection:

No deadocks found.

Thread 18532: (state=IN_VM)

Thread 18531:(state=BLOCKED)

- java.lang.object.wait(long) @bci=0 (Interpreted frame)
- java,lang.ref.ReferenceQueue.remove(long) @bci=59, line=143 (Interpreted frame)
- java.lang.ref.ReferenceQueue.remove() @bci=2ine=164 (Interpreted frame)
- java.lang.ref.Finalizer$FinalizerThread.run()@bci=36, line=209 (Interpreted frame)

Thread 18530: (state = BLOCKED)

- java.lang.object.wait(long) @bci=0(Interpreted frame)
- java.lang.obiect.wait() @bci=2,line=502 (Interpreted frame)
- java.iava.lang.ref.Reference.tryHandlePending(boolean) @bci=54, 1ine=191 (Interpreted frame)
- java.lang,ref.Reference$ReferenceHandler.run() @bci=1, 1ine=153 (Interpreted frame)

Thread 18518: (state=IN_VM)

但是我找不到JVM在做什么,找到了一篇相关文章:

https://forums.oracle.com/ords/apexds/post/unable-to-define-reason-for-blocked-jvm-5131

有人可以给我一些信息吗?

我使用 jstack -F 输出 jstack 信息,我想找到 JVM 在做什么。

jvm hung
1个回答
0
投票

堆栈跟踪表明 Java 应用程序中的终结器线程被卡住。如果您使用 Finalize() 方法,请尝试调试执行时间是否过长。 尝试启用垃圾收集日志记录以获取有关垃圾收集器行为的更多详细信息。

© www.soinside.com 2019 - 2024. All rights reserved.