當前位置:編程學習大全網 - 源碼下載 - 時間輪入門(極客時間rpc實戰核心原理)

時間輪入門(極客時間rpc實戰核心原理)

1,什麽是鐘輪?

這個問題並不難解決,我們只需要想辦法減少額外的掃描操作。比如我的壹批調度任務5秒後執行,我4.9秒後開始掃描這些調度任務,大大節省了CPU。這個時候,我們可以使用時鐘輪的機制。我們先來看看生活中用到的時鐘。

妳對它很熟悉。這個鐘有時針、分針和秒針。秒針跳壹周後,即跳60個刻度後,分針跳1次,分針跳60個刻度,時針移動壹步。鐘輪的實現原理參考了生活中的時鐘跳動原理。

在時鐘輪機制中,有時隙和時鐘輪的概念。時隙相當於時鐘的刻度,鐘輪相當於秒針和分針跳動的壹個周期。我們會把每個任務放在相應的時間段。時鐘輪的運行機制和生活中的時鐘是壹樣的。每固定壹個單位時間,它就會從壹個時隙跳到下壹個時隙,相當於我們的秒針跳了壹次。時鐘輪可以分為多層,時鐘輪下壹層每個槽的單位時間是當前時間輪的整個周期時間,相當於1分鐘等於60秒;當時鐘輪跳完壹個周期內的所有槽位後,會從下壹個鐘輪取出壹個槽位的任務重新分配給當前鐘輪,當前鐘輪又會從第0個槽位開始跳,相當於下壹分鐘的1秒。為了幫助大家理解鐘輪的運行機制,我們用壹個場景例子來模擬壹下,壹起看看這個場景。假設我們的時鐘輪有10個槽,壹個時鐘輪的周期是1秒,那麽每個槽的單位時間是100毫秒,而下壹個時間輪的周期是10秒,每個槽的單位時間是1秒,當前時鐘輪剛剛初始化,是第0個。

現在我們有三個任務,分別是任務A(在A(90毫秒)後執行)、任務B(在610毫秒後執行)和任務C(在1秒610毫秒後執行)。我們把這三個任務加到時鐘輪上,任務A放在槽0,任務B放在槽6,任務C放在下壹層。

任務A壹放在時鐘輪上,就立即執行,因為放在槽0上,當前時間輪剛好跳到槽0(其實還沒開始跳,狀態是jump 0);600毫秒後,時間輪已經跳了6次,當前時隙是第六個時隙,第六個時隙的任務全部取出執行;1秒後,當前時鐘輪的第九跳已經結束,零跳又開始了。此時下壹級時鐘輪已經從零跳跳到1跳,槽1的任務被取出分配給當前時鐘輪。此時,從下壹級時鐘輪中取出任務C,放在當前時鐘輪的第六個槽中。1秒600毫秒後,執行任務C。

  • 上一篇:占星術課-火星落入第八宮
  • 下一篇:請問股票中BOLL值是什麽意思
  • copyright 2024編程學習大全網