我正在对JOGL应用程序关闭进行故障排除。由于应用程序无法正确终止,因此我想知道是哪个线程引起的。有没有办法在调试器中检查哪些线程是non-daemon个线程?
如果IDE中没有用于此目的的东西,是否还有其他方法可以检查这一点,也许我可以输入一些聪明的表达式作为监视表达式来列出非恶魔线程?
答案 0 :(得分:1)
如果可以设置断点,则可以使用调用Evaluate expression (Alt + F8)
并键入Thread.getThreads()
,您可以检查每个线程是否为守护进程。
答案 1 :(得分:0)
右键单击堆栈框架,然后单击“导出胎面...”。 它将创建每个线程及其堆栈和内容的文本描述,但最重要的是,守护程序线程将在它们旁边说“ daemon”。
"RMI Scheduler(0)@4275" daemon prio=5 tid=0x14 nid=NA waiting
java.lang.Thread.State: WAITING
at jdk.internal.misc.Unsafe.park(Unsafe.java:-1)
at java.util.concurrent.locks.LockSupport.parkNanos(LockSupport.java:234)
...