gpt4 book ai didi

java - 比较不同机器产生的 System.nanoTime() 值

转载 作者:搜寻专家 更新时间:2023-11-01 03:12:04 24 4
gpt4 key购买 nike

比较在两台不同机器上调用 System.nanoTime() 所产生的两个值是否正确?我会说不,因为 System.nanoTime() 通过使用 Time Stamp Counter (TSC) 返回相对于某个任意点时间的纳秒级精确时间。这取决于处理器。

如果我是对的,有没有一种方法(在 Java 中)在两台不同的机器上捕获一个瞬间,并以至少微秒甚至纳秒的精度(安全地)比较这些值?

System.currentTimeMillis() 不是解决方案,因为它不会返回线性增加的时间戳数量。用户或NTP等服务可以随时更改系统时钟,时间会前后跳跃。

最佳答案

您可能想查看各种 clock synchronization算法可用。显然是 Precision Time Protocol可以让您在 LAN 上达到亚微秒级的精度。

如果您不需要特定的时间值,而是想知道各种事件的顺序,例如您可以使用 Lamport timestamps .

关于java - 比较不同机器产生的 System.nanoTime() 值,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/8000917/

24 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com