在多线程代码中,System.nanoTime()会产生很小的不准确性

时间:2013-02-24 09:15:17

标签: java multithreading time

在多线程代码中,每当线程被重新安排时,System.nanoTime()会产生小的不准确性吗?  如果是,这个错误会累积,在单线程代码中也是如此吗?

例如,当线程开始执行时,它会在开始时使用System.nanoTime()获取时间,然后在从线程块退出之前使用相同的System.nanoTime()

记录时间。

1 个答案:

答案 0 :(得分:1)

“小不准确”是什么意思?虽然System.nanoTime()为您提供纳秒分辨率,但无法保证其测量的经过时间的准确性。据我所知,调用System.nanoTime()不会破坏线程调度;方法调用和执行的成本很低,但就是这样。 (当然,如果你做了足够多的话,做很多这些调用会累积大量的CPU时间。)

相关问题