我正在运行一个Java进程,不幸的是进程中的一个线程已挂起。
我找到了使用jstack挂起的线程ID,但是我找不到任何有关如何使用ID中断该线程的参考?
是否可以使用processId和ThreadId从控制台(或基本上在进程外部)从控制台中断/停止线程?
关于如何解决这个问题有什么建议吗?
PS:我不想终止该进程,因为它只是一个挂起的线程。另外,我也不想更改代码以停止/中断线程。我只是想杀死它,因此可以释放它的所有资源。
没有杀死JVM中的线程的可靠方法,至少不是故意实现的方法。
话虽如此,如果您使用适当的参数启动了JVM,以便可以启动到它的远程JMX会话,则实际上可以挂起线程并向其中注入a RuntimeException
,这几乎肯定会终止它(除非您正在这样做)带有RuntimeException
s的东西)。
PS虽然您永远不会在生产环境中启动JVM,但允许流氓JMX连接,但是如果您不在生产环境中,我想上述方法对您没有太大帮助。
本文收集自互联网,转载请注明来源。
如有侵权,请联系[email protected] 删除。
我来说两句