<kbd id="afajh"><form id="afajh"></form></kbd>
<strong id="afajh"><dl id="afajh"></dl></strong>
    <del id="afajh"><form id="afajh"></form></del>
        1. <th id="afajh"><progress id="afajh"></progress></th>
          <b id="afajh"><abbr id="afajh"></abbr></b>
          <th id="afajh"><progress id="afajh"></progress></th>

          這個困擾程序員50年的問題,終于要被解決了?

          共 1876字,需瀏覽 4分鐘

           ·

          2022-08-04 06:20

          △Hollis, 一個對Coding有著獨特追求的人△
          這是Hollis的第 395 篇原創(chuàng)分享
          作者 l Hollis
          來源 l Hollis(ID:hollischuang)

          近日,Google、微軟、facebook 和亞馬遜終于忍不了了,聯(lián)合呼吁廢除閏秒,什么是閏秒呢?閏秒到底做錯了什么?為什么各大互聯(lián)網(wǎng)公司想要廢除他呢?



          什么是閏秒

          閏秒概念是 1972 年提出的,之所以有這個概念,主要是因為由于潮汐等自然現(xiàn)象的影響,地球的自轉(zhuǎn)速度并不是恒定的。

          所以,每隔一段時間世界標準時間「協(xié)調(diào)世界時(UTC)」會依據(jù)地球圍繞太陽運動計算的「世界時(UT)」之間出現(xiàn)小的偏差。

          所以就需要對協(xié)調(diào)世界時進行調(diào)快或者撥慢1秒來消除這個偏差。

          閏秒分為正閏秒和負閏秒,正閏秒表示需要在UTC中插入1秒,負閏秒表示需要在UTC中減少1秒。


          閏秒的發(fā)生

          當科學(xué)家們發(fā)現(xiàn)”哎呀、今年的地球轉(zhuǎn)的有點快呀,趕緊加一個閏秒來校正一下吧“,這個時間就會發(fā)生”正閏秒”。

          當閏秒發(fā)生時,就需要通過網(wǎng)絡(luò)時間協(xié)議NTP (Network time protocol)來進行時間同步,NTP服務(wù)器會一級一級地下發(fā)閏秒事件通知直到最邊緣的NTP服務(wù)器,然后NTP服務(wù)器就會把閏秒通知發(fā)給客戶端的操作系統(tǒng),由操作系統(tǒng)來處理閏秒通知。

          如果你的計算機系統(tǒng)沒有開啟NTP服務(wù),那么導(dǎo)致的問題就是你的計算機上的機器時間就會比世界時間慢1秒。

          如果開了NTP服務(wù)的話,就需要操作系統(tǒng)來處理這個閏秒。



          閏秒的處理

          一般來說,閏秒的調(diào)整一般被安排在6月30日或者12月31日,一般會調(diào)整在最后一分鐘,也就是說,某一年的6月30日的11:59分有61秒。那么計算機系統(tǒng)會如何處理這個閏秒呢?

          一般有以下幾種方式,如:

              1、直接顯示23:59:60這樣的時間。

              2、顯示兩次23:59:59這個時間。

              3、把這一秒平均分到最后一分鐘的每一秒鐘,也就是11:59還是有60秒,但是每一秒的時長是1+1/60 秒。

          不同的操作系統(tǒng),不同操作系統(tǒng)的不同版本,都會有不同的處理方式,所以我們的代碼就需要有足夠的魯棒性來兼容這些閏秒的處理方式,如果沒有做好兼容,那么就會發(fā)生各種各樣的問題。

          如需要兼容對23:59:60的處理;如操作會出現(xiàn)兩次23:59:59,這對于一些對時間有精確的強依賴的程序來說,可能就會導(dǎo)致致命的問題,尤其是一些依賴時間戳的服務(wù)或者工具。



          閏秒的危害

          50年來,閏秒已經(jīng)出現(xiàn)過27次,每一次出現(xiàn)都是一片”哀鴻遍野”,如:

          2012 年 7 月 1 日零點, Reddit、Mozilla、領(lǐng)英、Yelp 和 Amadeus 等網(wǎng)站宕機數(shù)十分鐘。

          2015 年 7 月 1 日零點,全球約 2000 個計算機網(wǎng)絡(luò)突然短暫中斷;美國洲際交易所被迫中止交易 61 分鐘。

          2017 年 1 月 1 日零點,Cloudflare 等云服務(wù)廠商服務(wù)突然崩潰。

          因為閏秒的發(fā)生是受自然現(xiàn)象影響的,所以他完全無法預(yù)測也沒有任何規(guī)律。對于程序員來說,這種無規(guī)律的事情,每次發(fā)生都需要進行一次特殊處理,而每一次特殊處理都可能要付出慘痛的代價。

          所以,這些國際大廠終于忍不了站出來呼吁廢除閏秒了,作為一個程序員,我舉雙手+雙腳贊成!


          參考資料:

          https://www.qbitai.com/2022/07/36387.html
          https://www.163.com/dy/article/HD9ESP2T0531M1CO.html?f=post2020_dy_recommends
          https://os.51cto.com/article/345796.html
          https://info.support.huawei.com/info-finder/encyclopedia/zh/NTP.html
          https://www.zhihu.com/question/27500849
          https://qa.1r1g.cn/unix/ask/23322561




          往期推薦

          如何搭建一支搞垮公司的技術(shù)團隊?


          各大主流編程語言性能PK,結(jié)果出乎意料


          金額計算用 BigDecimal 就萬無一失了?看看這五個坑吧~~




          如果你喜歡本文,
          請長按二維碼,關(guān)注 Hollis.
          轉(zhuǎn)發(fā)至朋友圈,是對我最大的支持。

          點個 在看 
          喜歡是一種感覺
          在看是一種支持
          ↘↘↘
          瀏覽 78
          點贊
          評論
          收藏
          分享

          手機掃一掃分享

          分享
          舉報
          評論
          圖片
          表情
          推薦
          點贊
          評論
          收藏
          分享

          手機掃一掃分享

          分享
          舉報
          <kbd id="afajh"><form id="afajh"></form></kbd>
          <strong id="afajh"><dl id="afajh"></dl></strong>
            <del id="afajh"><form id="afajh"></form></del>
                1. <th id="afajh"><progress id="afajh"></progress></th>
                  <b id="afajh"><abbr id="afajh"></abbr></b>
                  <th id="afajh"><progress id="afajh"></progress></th>
                  操逼视频91 | 屄网| 亚洲A V免费视频 | 囯产精品久久久久久久久久辛辛 | 亚洲欧美日韩色图 |