对不起我的台球英语。
我有一个jar程序,我用 java -jar XX.jar 调用它,但有时这个jar被阻止并且不正常退出,只是被阻止并且没有响应,并且 jstack
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 在做什么。
堆栈跟踪表明 Java 应用程序中的终结器线程被卡住。如果您使用 Finalize() 方法,请尝试调试执行时间是否过长。 尝试启用垃圾收集日志记录以获取有关垃圾收集器行为的更多详细信息。