Chr*_*ett 25 java time milliseconds nanotime
我想知道转换大纳秒值的最准确方法是毫秒和纳秒,纳秒的上限为999999.目标是结合纳秒和毫秒值以确保最大分辨率可以达到极限给出.这是为了与睡眠/等待方法和一些提供大纳秒值的其他外部库进行比较.
编辑:我的代码现在如下所示:
while (hasNS3Events()) {
long delayNS = getNS3EventTSDelay();
long delayMS = 0;
if (delayNS <= 0) runOneNS3Event();
else {
try {
if (delayNS > 999999) {
delayMS = delayNS / 1000000;
delayNS = delayNS % 1000000;
}
EVTLOCK.wait(delayMS, (int)delayNS);
} catch (InterruptedException e) {
}
}
}
Run Code Online (Sandbox Code Playgroud)
干杯,克里斯
Sha*_*der 86
为什么不使用内置的Java方法.TimeUnit是并发包的一部分,因此可以根据您的需要进行构建
long durationInMs = TimeUnit.MILLISECONDS.convert(delayNS, TimeUnit.NANOSECONDS);
Run Code Online (Sandbox Code Playgroud)
Ibr*_*ief 76
对于更短的转换使用java.util.concurrent.TimeUnit,相当于Shawn上面写的,您可以使用:
long durationInMs = TimeUnit.NANOSECONDS.toMillis(delayNS);
Run Code Online (Sandbox Code Playgroud)
Ign*_*ams 24
只需要1000000的divmod.
| 归档时间: |
|
| 查看次数: |
65654 次 |
| 最近记录: |