我有一個java.util.Timer,並且我正在調度TimerTasks,它在凌晨3:00:00每24小時運行一次,但是在5-8天后Timer被GC並且我的所有任務都被取消,因爲定時器實例不再存在。GC正在使用Java長時間運行的計時器
我該如何預防?
我用:
t.schedule(timerTask, date);
然後將任務重新開始自己(在執行任務也是調用時間表再次這項任務方法)
計時器這樣的定義:
public static Timer t = new java.util.Timer();
只有當GC沒有可達的引用時,計時器纔會被使用。除了初始化之外,你是否隨時爲't'賦值? – RealSkeptic