1

Eclipse 3.7.2 在 Solaris 11 X86 中存在漏洞 - 它的主线程随机进入睡眠状态并且永远不会从中唤醒。我希望中断睡眠,以便主线程继续运行。可能吗?

更多细节在这里:Eclipse 永远挂起,线程转储说主线程正在休眠

4

2 回答 2

3

我认为中断正在运行您未编写的代码的线程不是一个好主意——您可能会导致死锁、损坏的数据结构等。或者它可能是良性的。但这是你的风险...

是的,可以做你想做的事。如果您可以在该应用程序中运行您自己的一些代码,那么您可以监视线程,直到您看到一个具有特定名称并且已经休眠很长时间的线程,然后很容易地中断它:

Thread.enumerate()
Thread.getName()
Thread.interrupt()

要让您的代码与程序的其余部分同时运行,您可以修改启动器:修改类路径,创建一个带有 main 方法的类,该方法启动您自己的监控线程,然后调用真正的 main 方法。

或者,您可以将监视线程编写为 Java 代理并使用“-javaagent”开关。有关详细信息,请参阅http://docs.oracle.com/javase/7/docs/api/java/lang/instrument/package-summary.html

于 2012-09-01T01:15:29.337 回答
0

对于 Eclipse,您 >>DO<< 可以访问代码……因为 Eclipse 是开源的。

下载代码,修改它(例如实现看门狗)并重建它可能会更好/更清洁/更简单。

您可能还应该将此报告为 Eclipse 错误。

于 2012-09-01T02:55:25.073 回答