我们需要密切关注来自Java程序的pc时钟。为此,我们每500毫秒使用scheduleAtFixedRate()安排一个Runnable。我们每次都从这里调用System.currentTimeMillis()。如果我们看到有更大的差异,那么500 ms + - 某个允许的增量,然后我们假设时钟已经改变(然后我们需要做其他一些事情)。scheduleAtFixedRate的准确度是多少?
这是否是正确的做事方式? Linux上的测试表明,在正常操作期间50毫秒增量就足够了。在Windows上,我们必须增加100 ms,否则,它认为每次检查都会改变时间。
有关如何做到这一点的任何其他想法?
谢谢你的链接,但链接的问题已经评论说,它是一个天真的实现。 – 2009-07-17 11:46:30