nanoTime()定时器的解析



我已经在帖子中搜索了与系统的时间相关的答案。nanoTime()方法调用进程。

考虑以下代码:

long lastTime = System.nanoTime();
long currentTime = System.nanoTime();
long deltaTime = currentTime - lastTime;

如果你运行这个,currentTime - lastTime将计算为'0'。发生这种情况的唯一方法是,如果计算机处理第二个方法调用超出一纳秒的分辨率(即调用花费少于一纳秒)。从逻辑上讲,这是有道理的,因为一台计算机(平均而言)可以在一个纳秒内执行多个进程。

这是正确的吗?如果不是,我的逻辑错在哪里?

理论上它会输出"0"。在某些情况下,如果您有许多其他任务正在执行,则可能会有轻微的变化。

理论上是正确的,假设绝对没有其他进程在运行,并且对Java方法的调用没有延迟。因此,在实际系统中,这是不可能实现的,因为对Java方法的调用将引入明显的延迟。正如我在我的评论中所说,我可以在双核Android 4.0.4手机上实现大约0.015毫秒的差异。

相关内容

  • 没有找到相关文章

最新更新