我們需要密切關注來自Java程序的pc時鐘。爲此,我們每500毫秒使用scheduleAtFixedRate()安排一個Runnable。我們每次都從這裏調用System.currentTimeMillis()。如果我們看到有更大的差異,那麼500 ms + - 某個允許的增量,然後我們假設時鐘已經改變(然後我們需要做其他一些事情)。scheduleAtFixedRate的準確度是多少?
這是否是正確的做事方式? Linux上的測試表明,在正常操作期間50毫秒增量就足夠了。在Windows上,我們必須增加100 ms,否則,它認爲每次檢查都會改變時間。
有關如何做到這一點的任何其他想法?
謝謝你的鏈接,但鏈接的問題已經評論說,它是一個天真的實現。 – 2009-07-17 11:46:30