System.nanoTime()什么时候等于0或者什么时候重置?

问题描述 投票:0回答:1

我正在和

System.nanoTime()
一起做一些工作。

我在网上发现,如果发生两个事件,A和B,使得A先于B,那么A处的System.nanoTime()会小于B处的System.nanoTime()。我知道System.nanoTime()的实际值总是无关紧要,我们只减去两个 System.nanoTime() 值即可获得经过的时间。然而,第一个观察结果表明 System.nanoTime() 始终在增加。由于我们总是可以将它存储在 java 中的 long 中(这是一种有限大小的数据类型),因此在某个时刻 System.nanoTime() 必须重置并等于 0。这种情况何时发生,如果您尝试测量经过的时间会发生什么从重置前开始到重置后结束?

我编写了一些代码片段来尝试查找 System.nanoTime() = 0 的时间,但我什么也没得到。它肯定不可能总是增加,对吧?

java elapsedtime nanotime
1个回答
0
投票

您的问题已在文档中解决。请参阅 Javadoc 来了解

System.nanoTime
。引用:

返回的值表示自某个固定但任意的起始时间以来的纳秒(可能在未来,因此值可能为负)。

起始时间是任意的。这意味着您无法询问该值何时为零。文档告诉您不要期望起始时间。

© www.soinside.com 2019 - 2024. All rights reserved.