计算机时间到底是怎么来的?程序员必看的时间知识!(8)
2023-05-02 来源:飞速影视
<span https:="" mmbiz.qpic.cn="" mmbiz_svg="" uchmtwqh7iaq0onof2icice1i8enl57wofcut1qtoewo0ouxoekmleshylaob4gctaskr7k2pvbl0zab5g8nde0qjpuianl3cdja="" 640?wx_fmt="svg")" 10px="" 40px="" no-repeat="" rgb(40,="" 44,="" 52);height:="" 30px;width:="" 100%;margin-bottom:="" -7px;border-radius:="" 5px;"="" style="display: block; background: url("");">
t2 的时间真的会比 t1 小吗?
这里就牵涉出 2 个概念:墙上时钟、单调时钟,它们之间有什么区别呢?
墙上时钟:通常就是指前面讲到的世界协调时 UTC,校准时间后,可能发生回拨
单调时钟:计算机自启动以后经历的纳秒数,不会回拨
一般我们写的代码,像上面程序调用的「时间 API」,通常获取的时间是 墙上时钟 ,所以,如果时间发生校准,就可能会发生「时光倒流」的情况。
这必然对程序产生很大的影响,怎么解决这个问题呢?
幸运的是,NTP 在校准时间时,提供了 2 种方式:
ntpdate:一切以服务端时间为准,「强制修改」本机时间
ntpd:采用「润物细无声」的方式修改本机时间,把时间差均摊到每次小的调整上
也就是说,ntpd 当接收到需要「回拨」的时间时,会让本机时间走得「慢」一点,小步调整,逐渐与服务端的时钟「对齐」,这样一来,本机时间依旧是递增的,避免发生「倒流」。
当我们在配置 ntp 服务时,需要格外注意这种情况。另外,在编写程序时,也要注意调用的时间 API 获取的是哪个时间,避免业务逻辑发生异常。
至此,我们从看似简单的时间问题,一步步深挖到时间的定义,再到时间是如何同步到计算机和终端设备的,怎么样,有没有解答了你心中的很多疑惑?
总结
好了,总结一下。
这篇文章我们讲了非常多的概念,这里我们再重新梳理一遍。
1、人类的早期生活,依靠观测「天文现象」来测量时间,基于地球自转规律,定义了一套时间标准:「世界时」。
本站仅为学习交流之用,所有视频和图片均来自互联网收集而来,版权归原创者所有,本网站只提供web页面服务,并不提供资源存储,也不参与录制、上传
若本站收录的节目无意侵犯了贵司版权,请发邮件(我们会在3个工作日内删除侵权内容,谢谢。)
www.fs94.org-飞速影视 粤ICP备74369512号