java - 无限的TimerTask方法调用

标签 java java-me timertask

也许你可以帮助理解一些关于 TimerClass 的事情:

假设我有一个计时器

Timer timer = new Timer();

还有一个数据获取任务

timer.shedule(new DataFetcher, 0, time);

假设执行任务的时间间隔很短,加上理论上无限运行的程序,是否会出现这样的情况:当周期足够短或任务执行时间太长时,我最终会得到大量的 DataFetcher 实例? 如果我改变计划

DataFetcher df = new DataFetcher();
timer.shedule(df, 0, time);

这能确保我始终使用相同的任务实例吗?我尝试模拟它,以估计行为,但我有点卡住了。

问候

请注意,我使用 j2me 在移动设备上工作。我知道 std java 中的计时器替代品,但我猜它不适合微型版本。

最佳答案

您的两个版本是相同的:您将只有一个 DataFetcher 实例,这是执行此操作的正确方法。

此外,来自documentation :

In fixed-delay execution, each execution is scheduled relative to the actual execution time of the previous execution. If an execution is delayed for any reason (such as garbage collection or other background activity), subsequent executions will be delayed as well.

因此任务不会累积,而是一个接着一个执行。

关于java - 无限的TimerTask方法调用,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/25789318/

相关文章:

java - Java 中使用公钥加密数据的标准方法

java - 在 Windows 上通过命令行设置 JVM

java - 数组元素困惑

java - 致命异常 : Timer-0?

java - JUnit 不使用 Thread.sleep 测试计划的影响逻辑

java - 如何基于 XML 节点构建 xpath 表达式

java - 如何在诺基亚asha sdk1.0中使textArea可滚动

java - Thawte证书查询

Java getter : Always execute specific method

Java Timer.schedule 只运行一次