2010-05-06 18 views
4

我有一個java.util.Timer以固定的時間間隔運行。我添加了一個Runtime#addShutdownHook,當VM正常或異常結束時它會關閉。但是,當main終止時,它會保持VM活着,除非我堅持在main中執行System.exit有沒有什麼方法可以讓我檢查自己是最後的Thread站位,還是其他方式來避免改變main在完成時會正常退出?線程自動關機?停止java.util.Timer實例

注:我知道有很多人認爲,java.util.Timer被棄用(這不是),但除非你選擇幫助我解決這個問題...

回答

8

創建使用一個計時器的構造函數重載,它允許您指定是否使用守護進程線程:通過true作爲參數,以便它將在守護進程線程上運行,這不會阻止VM關閉。