VisualVM支持执行不安全的BTrace脚本(https://kenai.com/projects/btrace/pages/UserGuide)。是否可以使用不安全的BTrace脚本来杀死/中断某些Java线程?我的Eclipse IDE中的一些线程已经死锁,我想优雅地关闭IDE。
“Worker-3571”prio = 6 tid = 0x00000000114b7800 nid = 0x964等待监视器输入[0x000000002a45f000] java.lang.Thread.State:BLOCKED(在对象监视器上) at org.eclipse.jdt.internal.ui.viewsupport.SelectionListenerWithASTManager $ PartListenerGroup $ 3.run(SelectionListenerWithASTManager.java:155) - 等待锁定< 0x00000000f7490ce8> (一个java.lang.Object) 在org.eclipse.core.internal.jobs.Worker.run(Worker.java:53)
“Worker-3568”prio = 6 tid = 0x00000000114b9000 nid = 0x2984等待监视器输入[0x000000002958f000] java.lang.Thread.State:BLOCKED(在对象监视器上) at org.eclipse.jdt.internal.ui.viewsupport.SelectionListenerWithASTManager $ PartListenerGroup $ 3.run(SelectionListenerWithASTManager.java:155) - 等待锁定< 0x00000000f7490ce8> (一个java.lang.Object) 在org.eclipse.core.internal.jobs.Worker.run(Worker.java:53)
“Worker-3570”prio = 6 tid = 0x00000000114bc000 nid = 0x1980 in Object.wait()[0x000000002998f000] java.lang.Thread.State:WAITING(在对象监视器上) at java.lang.Object.wait(Native Method) 在java.lang.Object.wait(Object.java:503) 在org.eclipse.jdt.internal.ui.javaeditor.ASTProvider.getAST(ASTProvider.java:457) - 已锁定< 0x00000000e10979a0> (一个java.lang.Object) 在org.eclipse.jdt.ui.SharedASTProvider.getAST(SharedASTProvider.java:128) at org.eclipse.jdt.internal.ui.viewsupport.SelectionListenerWithASTManager $ PartListenerGroup.calculateASTandInform(SelectionListenerWithASTManager.java:170) at org.eclipse.jdt.internal.ui.viewsupport.SelectionListenerWithASTManager $ PartListenerGroup $ 3.run(SelectionListenerWithASTManager.java:155) - 已锁定< 0x00000000f7490ce8> (一个java.lang.Object) 在org.eclipse.core.internal.jobs.Worker.run(Worker.java:53)
答案 0 :(得分:1)
不,由于以下原因,无法做到这一点:
基于JPDA的解决方案(例如,jdb,youdebug)将会更加幸运。