首页 > Java > java教程 > 正文

System.nanoTime() 在现代多核系统上真的可靠吗?

Susan Sarandon
发布: 2024-11-17 19:06:02
原创
937 人浏览过

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
作者最新文章
热门教程
更多>
最新下载
更多>
网站特效
网站源码
网站素材
前端模板