java - 1ms Java 定时器延迟是否太快?

标签 java timer

Timer timer = new Timer(true);
timer.scheduleAtFixedRate(timerTask, 0, 1);  // 1 = 1ms delay between each iteration

每次它触发时,它都会运行一个 super 快速的操作,基本上根本不需要时间:基本上它会获取当前经过的毫秒值,并在以毫秒为关键的 Map 中进行快速查找时增加它。

你认为 1ms 的延迟会不会太快了?这会让系统陷入困境吗?尝试使用这个超快计时器有什么危险吗?

最佳答案

也许吧。在现代计算机上,一毫秒内可以发生很多事情,因此它取决于很多事情。您可能应该找出可接受的最低速率,然后在 1 和该数字之间选择一个合理的值。这将每天执行大约 86,400,000 次。这对您要实现的目标有意义吗?

编辑:作为对问题注释的一些评论,如果您假设计时器将始终以您提供的速率成功执行,则此方法可能存在根本缺陷。不管利率如何,你永远不能做出这个假设。很难说,因为细节很少,但我觉得您应该考虑使用队列而不是 Map。

关于java - 1ms Java 定时器延迟是否太快?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/34594782/

相关文章:

java - 如何在 Java 中计算事件的耗时?

javascript - 将 React 计时器重置为初始常量值

java - 如何处理GXT 2.2网格中单元格的点击?

java - Spring Data JDBC 反转 OneToMany 导航

java - 需要帮助理解作者反对一段代码的论点

java - 迭代器不工作

java - 线形角到角

android - onPause/onResume Activity 问题

swift - ios8 Swift SpriteKit - 快速暂停和恢复 NSTimers

javascript - 在一段时间内增加值 JS