首頁 > Java > java教程 > System.nanoTime() 在現代多核心系統上真的可靠嗎?

System.nanoTime() 在現代多核心系統上真的可靠嗎?

Susan Sarandon
發布: 2024-11-17 19:06:02
原創
994 人瀏覽過

Is System.nanoTime() Truly Reliable on Modern Multi-Core Systems?

System.nanoTime() 在多核心系統上仍有缺陷嗎?

部落格文章「謹防System.nanoTime() Java」引發了對x86 架構上System.nanoTime() 可靠性的擔憂,其中它使用的特定於CPU 的計數器可能會因為使用非同步計數器跨不同處理器進行執行緒調度而導致負時間測量。

但是, Sun 工程師(現為 Oracle)在 2011 年的回覆中澄清,此問題已在 Windows XP Service Pack 2 中解決,並且在現代 Windows 和 Linux 系統上不再是一個問題。

Windows:

  • System.nanoTime() 所使用的QueryPerformanceCounter 的預設實作已變更為使用電源管理計時器(PMTimer),在計時器SMP 系統上的處理器之間同步。

Linux:

  • 從核心版本 2.6.18 開始,改進了偵測非同步時間來源的系統邏輯。
  • 不可靠的時間源通常會偵測到並回退到更可靠的時鐘來源。

其他平台:

提供的回應不涉及 SPARC 或 Solaris 系統。然而,可以合理地假設這些平台也實現了類似的機制來確保跨多個處理器的一致計時。

值得注意的是,截至 2011 年,此資訊是準確的。有關System.nanoTime() 的實作和行為,請參閱最新文件和社群討論。

以上是System.nanoTime() 在現代多核心系統上真的可靠嗎?的詳細內容。更多資訊請關注PHP中文網其他相關文章!

來源:php.cn
本網站聲明
本文內容由網友自願投稿,版權歸原作者所有。本站不承擔相應的法律責任。如發現涉嫌抄襲或侵權的內容,請聯絡admin@php.cn
作者最新文章
熱門教學
更多>
最新下載
更多>
網站特效
網站源碼
網站素材
前端模板