ntp时间同步之前,调用线程sleep(xxxxxxx),预计是凌晨03:00的时候sleep结束线程被唤醒。
但是在凌晨01:00左右进行ntp时间同步之后系统时间出现了10几秒的误差,
这个之后线程居然在02:50分就被唤醒了。我不太明白为什么ntp只是出现了10来秒的误差,现成的sleep方法会出来10分钟左右的
误差呢。
但是在凌晨01:00左右进行ntp时间同步之后系统时间出现了10几秒的误差,
这个之后线程居然在02:50分就被唤醒了。我不太明白为什么ntp只是出现了10来秒的误差,现成的sleep方法会出来10分钟左右的
误差呢。
就用18*60*60 = 64800秒来设置的,因为sleep设置毫秒级别
所以就变成了sleep(64800000)比如早晨
11/27 08:00:00开始执行sleep
11/28 02:00:00预计唤醒sleep
但是在11/28 01:00左右有了一个ntp的时间同步处理,这个时候
把系统时间向前调了10来秒,按道理sleep也只误差10来秒才对,
但是我发现sleep误差了5分钟左右
在11/28 01:55:00就被唤醒了
不知道什么原因
我觉得sleep一旦设置了睡眠的毫秒数就应该和ntp没有啥关系了阿。
我就是弄不明白,那多出来的5分钟是怎么出来的
即:
用时间查询来决定是否到达时间,而不是依赖sleep自己的计时。
(这样你调整系统时间才具有了现实意义)
这个不太明白原因
我目前用
windows作ntpserver
linux作ntpclient
正在试验看看
也没有发生这样的问题啊。有没有高手可以解答一下