2012-06-11 70 views
0

我写了一个Java程序,分析其他程序。执行可能需要很长时间(=天)。现在(三天后),我有问题,我的程序/进程正在睡觉(S)。它仍然分配了50%的内存,有时它会打印新的输出,但顶部显示必须是0%的CPU时间。醒来睡觉分离java进程

我用jstack可以肯定,仍然有可运行的线程。因此,这似乎不是一个僵局问题。我不知道,为什么这个过程没有得到更多的CPU时间。我偶然从0到-10的java进程niceness,但没有任何事情发生。

更多详细信息: 该进程在Linux服务器上运行:Ubuntu 10.04.4 LTS。 我开始我的过程屏幕。所以,我不必一直登录。

screen -S analyse ant myParameters 

服务器几乎没有任何关系。

感谢您的帮助。

+1

您应该添加一些日志信息到您的程序,以确保线程仍在工作。 – PeterMmm

+0

您提供的详细信息不足。请提供您程序的一些代码片段。 – amicngh

+0

感谢您的回复。我相信,线程仍然在工作,因为* jstack *显示,它们可以运行,并且有时会打印新的控制台输出。 – user1328819

回答

0

以调试模式启动您的程序。然后,您可以使用任何Java调试器来附加它,并检查它正在做什么。