計(jì)算機(jī)時(shí)間到底是怎么來(lái)的?程序員必看的時(shí)間知識(shí)!

為什么計(jì)算機(jī)的時(shí)間有時(shí)候「走不準(zhǔn)」? 計(jì)算機(jī)究竟是怎么「自動(dòng)校準(zhǔn)」時(shí)間的? 我們經(jīng)常看到的 UTC 時(shí)間,到底是什么? 我們?cè)谛侣勆峡吹降摹副本r(shí)間」,真的來(lái)自北京嗎?

時(shí)間為什么總是走“不準(zhǔn)”?
如何校準(zhǔn)時(shí)間?
時(shí)間是怎么來(lái)的?
一秒到底有多長(zhǎng)?

注:這個(gè)測(cè)量原理和測(cè)量過(guò)程比較復(fù)雜,這里把這些物理細(xì)節(jié)簡(jiǎn)化了。不用太過(guò)糾結(jié)這個(gè)數(shù)值是怎么測(cè)量出來(lái)的,你只需要理解,這個(gè)微觀原子內(nèi)部的振蕩周期是非常穩(wěn)定的,它比之前根據(jù)天文現(xiàn)象測(cè)量出來(lái)的秒,要精確多得多。
科研技術(shù)還在發(fā)展,精密設(shè)備和測(cè)量能力也越來(lái)越高,最新的原子鐘甚至可以達(dá)到 1 億年不差 1 秒!
世界標(biāo)準(zhǔn)時(shí)間是怎么來(lái)的?
世界時(shí):基于天文現(xiàn)象 + 鐘表計(jì)時(shí),永遠(yuǎn)與地球自轉(zhuǎn)時(shí)間相匹配 國(guó)際原子時(shí):基于原子鐘計(jì)時(shí),每一秒的周期完全等長(zhǎng)且固定

原子時(shí)走得快,世界時(shí)走得慢,時(shí)間越久,兩者差距越來(lái)越大 日復(fù)一日,幾百年后,世界時(shí)的正午 12 點(diǎn)是太陽(yáng)高照的時(shí)刻,而原子時(shí)可能已經(jīng)走到了下午 2 點(diǎn)了 幾千年后,太陽(yáng)高照的時(shí)刻,原子時(shí)可能已經(jīng)走到了晚上 8 點(diǎn)!

當(dāng)然,當(dāng)?shù)厍蜃赞D(zhuǎn)速度變快時(shí),這里也有可能是減一秒,即從 23:59:58 直接跳到 00:00:00。但這種情況比較少,大部分情況下,地球自轉(zhuǎn)速度是越來(lái)越慢的。

看到了么?我們?cè)陂_(kāi)發(fā)時(shí)經(jīng)常看到的 UTC,原來(lái)是這樣來(lái)的!

為什么國(guó)家授時(shí)中心會(huì)設(shè)立在陜西省?因?yàn)殛兾魇〉牡乩砦恢锰幱谥袊?guó)的中部,從這個(gè)位置向各地廣播時(shí)間時(shí),對(duì)全國(guó)每個(gè)地區(qū)距離都是相對(duì)平均的。
是不是挺有意思?北京時(shí)間并不是在北京產(chǎn)生的,而是在陜西省,并與參與世界時(shí)間的制定和校準(zhǔn)。
計(jì)算機(jī)如何同步時(shí)間?

NTP 如何同步時(shí)間? 同步時(shí)間時(shí),對(duì)正在運(yùn)行的程序有沒(méi)有影響?

網(wǎng)絡(luò)延時(shí) = (t4 - t1) - (t3 - t2) 時(shí)間差 = t2 - t1 - 網(wǎng)絡(luò)延時(shí) / 2 = ((t2 - t1) + (t3 - t4)) / 2
這個(gè)計(jì)算過(guò)程假設(shè)網(wǎng)絡(luò)來(lái)回路徑是對(duì)稱的,并且時(shí)延相同。
t1 = time.now()
// 時(shí)間發(fā)生校準(zhǔn)
t2 = time.now()
// t2比t1小怎么辦?
elapsed = t2 - t1
墻上時(shí)鐘:通常就是指前面講到的世界協(xié)調(diào)時(shí) UTC,校準(zhǔn)時(shí)間后,可能發(fā)生回?fù)?/span> 單調(diào)時(shí)鐘:計(jì)算機(jī)自啟動(dòng)以后經(jīng)歷的納秒數(shù),不會(huì)回?fù)?/span>
ntpdate:一切以服務(wù)端時(shí)間為準(zhǔn),「強(qiáng)制修改」本機(jī)時(shí)間 ntpd:采用「潤(rùn)物細(xì)無(wú)聲」的方式修改本機(jī)時(shí)間,把時(shí)間差均攤到每次小的調(diào)整上
總結(jié)
后記

好文推薦


網(wǎng)傳京東某程序員因壓力太大,在商品頁(yè)面置入罵人代碼!京東辟謠:不關(guān)我們的事,外部商家干的!

某大廠程序員炫耀:來(lái)新加坡后,每天最多工作五六個(gè)小時(shí),家庭年收入150萬(wàn)人民幣,已躺平!

女學(xué)霸考692分想當(dāng)“程序媛”,網(wǎng)友:快勸勸孩子
一鍵三連「分享」、「點(diǎn)贊」和「在看」
技術(shù)干貨與你天天見(jiàn)~
評(píng)論
圖片
表情

