我用来java.util.Timer在我的应用程序中触发作业,但我发现它取决于系统时间:如果调整系统时间,定时器的触发器将受到影响.
例如,如果系统时间回退80秒,计时器将停止工作80秒.
Java有一种System.nanoTime独立于系统时间的方法,但它似乎无法使用Timer.
是否有Timer库支持我需要的东西?或者我必须自己实施?
请注意,我不需要精确的当前时间(日期),我需要一个精确的时间间隔
你有2个选择:
reinvent the wheel,能够自己承担任务总是很重要.特别是当它大约有20行代码时.java.util.concurrent.ScheduledThreadPoolExecturor和使用scheduleAtFixedRate队列impl.是基于System.nanoTime.ntp守护程序,通过在很长一段时间内以非常轻微的方式调整(减慢,加速)系统时钟来调整时间.很少有其他的东西,完美的100毫秒是非实时GC环境中的高阶,因为GC有时可以STW(停止世界)几秒钟.Sun的GC不能可靠地做到这一点.应该在改进的Linux内核上运行IBM的Metronome.您可能希望注意您的应用程序是否真正实时要求.
| 归档时间: |
|
| 查看次数: |
2260 次 |
| 最近记录: |