2012-06-11 76 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調試器來附加它,並檢查它正在做什麼。