【发布时间】:2015-11-27 14:26:17
【问题描述】:
我有一个 java.util.Timer,我正在安排 TimerTasks,它每 24 小时在凌晨 3:00:00 运行一次,但是在 5-8 天后,计时器被 GC 消耗,我的所有任务都被取消,因为计时器实例不再存在。
如何防止这种情况发生?
我用:
t.schedule(timerTask, date);
然后任务自己再次启动(任务执行时也调用方法再次调度该任务)
定时器是这样定义的:
public static Timer t = new java.util.Timer();
【问题讨论】:
-
只有在没有可达的引用时,定时器才会被 GC 消耗。除了初始化之外,您是否随时为
t分配新值?
标签: java timer task long-integer