我的代码依赖于Timer保持活跃并管理TimerTask。通常TimersTasks会出现并且总会有至少一个TimerTask来保持Timer的存活,但是所有TimerTasks都会死掉,而Timer会死掉它。
我如何让Timer保持活着?我是否应该安排一个TimerTask计划在很远的日期开火?这就是我倾向于的,但我想听听更有经验的程序员的想法。
*如果我可以终止所有TimerTaks,除了这个'永久'TimerTask之外,这也很好。
很抱歉,如果这些都没有多大意义,或者我认为Timers和TimerTasks都错了。我是Java和所有编程的新手。
答案 0 :(得分:2)
这听起来倒退了。 Timer是管理任务的东西。 TimerTask是被管理的东西。您创建一个计时器,告诉它计划时间任务,可以是单一的或连续的(例如,您可以将任务设置为在JVM运行时每小时运行一次)。它将一直运行,直到它没有更多的任务。
来自文档:
对Timer对象的最后一次实时引用消失后全部消失 未完成的任务已完成执行,计时器的任务执行 线程优雅地终止(并成为垃圾 集合)。