我只能在 Mac OS 10.8.5 上的 Eclipse(Juno 和 Kepler)中调用 System.nanoTime() 获得微秒级分辨率。有没有办法获得纳秒级的分辨率?
for (int i = 1; i < 1000; i++) {
if (System.nanoTime() % 1000 != 0) {
System.out.println("Got one");
}
}
System.nanoTime()
根据此错误报告,您将在 JDK 8u20 的 Mac OS X 上获得更合适的版本。
简而言之, mach_absolute_time与防护一起使用(因为它是特定于 CPU 的),因此它不能倒退(在多核系统上)。
在此处查看在 JDK8 中实现此功能的实际代码。