【发布时间】:2018-12-22 23:53:42
【问题描述】:
在Java 中System.nanoTime() 的单调implementation on Linux 依赖于CLOCK_MONOTONIC 在操作系统上可用的事实。如果它不可用,它会退回到gettimeofday,这可能会导致在使用nanoTime 测量时间间隔时获得负时间间隔。例如,以下测试可能会失败。
long t1 = System.nanoTime();
long t2 = System.nanoTime();
assert t2 >= t1
在什么情况下CLOCK_MONOTONIC 在服务器上可能不可用?假设 CLOCK_MONOTONIC 时钟在所有现代 Linux 服务器上都可用是否合理?
【问题讨论】:
标签: java linux time clock gettimeofday