理论上,JDB(java调试器)允许杀死单个线程。在实践中,有可能吗?在这里,我将jdb附加到我的JVM,它在端口8000上有一个agentlib:
$ jdb -attach 8000
>
我列出了主题:
> threads
Group system:
(java.lang ...
[...]
我发现有问题的线程并尝试杀死它:
> kill 0x21bb new java.lang.Exception("die!")
killing thead: pool-766-thread-1
> com.sun.tools.example.debug.expr.ParseException: Unable to create java.lang.Exception instance
Expression must evaluate to an object
所以线程不能被杀死?
如何在jdb中创建一个新的Exception,让它给线程死?
答案 0 :(得分:1)
以下answer on SO似乎只是强制您的问题。
但以下answer可能确实回答了您的问题...
答案 1 :(得分:0)
您可能还在运行jconsole / jvisualvm。我有同样的问题,但后来我关闭了jconsole,jdb kill命令工作。