我有一个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