可以从jdb中杀死一个java线程吗?

时间:2011-11-18 21:40:59

标签: java multithreading exception kill jdb

理论上,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,让它给线程死?

2 个答案:

答案 0 :(得分:1)

以下answer on SO似乎只是强制您的问题。

以下answer可能确实回答了您的问题...

答案 1 :(得分:0)

您可能还在运行jconsole / jvisualvm。我有同样的问题,但后来我关闭了jconsole,jdb kill命令工作。