我写了一个Java程序,它分析其他程序。执行可能需要很长时间(=几天)。现在(三天后),我遇到了问题,我的程序/进程正在 sleep (S)。它仍然分配了 50% 的内存,有时会打印新的输出,但 top 有时会显示 0% CPU。
我使用jstack来确定仍然有可运行的线程。因此,这似乎不是一个僵局问题。我不知道,为什么进程没有获得更多的CPU时间。我碰巧将 java 进程的niceness从 0 调到了 -10,但什么也没发生。
更多详情: 该进程在 Linux 服务器上运行:Ubuntu 10.04.4 LTS。 我从屏幕开始我的流程。因此,我不必一直登录。
screen -S analyse ant myParameters
服务器几乎无所事事。
感谢您的帮助。
最佳答案
以 Debug模式启动程序。然后您可以使用任何 Java 调试器附加到它并检查它正在做什么。
关于java - 唤醒 sleep 分离的java进程,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/10978486/