【问题标题】:How do I make sure a Timer stays alive?如何确保 Timer 保持活动状态?
【发布时间】:2011-08-24 17:25:10
【问题描述】:

我的代码依赖于 Timer 保持活动状态并管理 TimerTask。通常 TimersTask 会来来去去,总会有至少一个 TimerTask 来维持 Timer 的存活,但时不时所有 TimerTask 都会死掉,而 Timer 也会随之死去。

如何让 Timer 保持活力?我应该在其中有一个 TimerTask 计划在遥远的日期触发吗?这就是我的倾向,但我想听听更有经验的程序员的想法。

*如果我可以终止所有 TimerTaks,除了这个“永久”TimerTask 之外,这也很好。

对不起,如果这些都没有多大意义,或者我认为 Timers 和 TimerTasks 都错了。我是 Java 和所有编程的新手。

【问题讨论】:

  • 通常TimerTask 定义您想要做的工作,但不管理执行环境本身。

标签: java timer


【解决方案1】:

这听起来倒退了。计时器是管理任务的东西。 TimerTask 是被管理的东西。您创建一个计时器,并告诉它安排 timertask,它可以是单数或连续的(例如,只要您的 JVM 正在运行,您就可以将任务设置为每小时运行一次)。它将一直运行,直到没有更多任务为止。

来自文档:

在对 Timer 对象的最后一个实时引用消失后,所有 未完成的任务已经执行完毕,定时器的任务执行 线程优雅地终止(并成为垃圾 收藏)。

【讨论】:

  • 哦,哎呀我知道!我不知道为什么我把它们写反了。我现在就改。
猜你喜欢
  • 2012-03-09
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 2012-01-14
  • 2012-04-14
  • 2011-11-22
  • 2011-04-05
相关资源
最近更新 更多