【发布时间】:2009-07-17 10:08:23
【问题描述】:
我们需要关注 Java 程序的 pc 时钟。为此,我们每 500 毫秒使用 scheduleAtFixedRate() 调度一个 Runnable。我们每次都从这里调用 System.currentTimeMillis() 。如果我们看到 500 毫秒 +- 某个允许的增量有更大的差异,那么我们假设时钟已经改变(然后我们需要做一些其他的事情)。
这是一种正确的做事方式吗? Linux 上的测试表明,在正常操作期间,50 毫秒的增量就足够了。在 Windows 上,我们必须将它增加太多 100 毫秒,否则,它认为我们所做的每次检查都改变了时间。
关于如何做到这一点的任何其他想法?
【问题讨论】:
标签: java