質問

大きなナノ秒値を変換する最も正確な方法は、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) {

        }
    }
}

乾杯、クリス

役に立ちましたか?

解決

1000000でDivmodを取得してください。

他のヒント

組み込みのJavaメソッドを使用してみませんか。 TimeUnitは同時パッケージの一部であるため、必要に応じて正確に構築されています

  long durationInMs = TimeUnit.MILLISECONDS.convert(delayNS, TimeUnit.NANOSECONDS);

使用を使用してより短い変換のため java.util.concurrent.TimeUnit, 、ショーンが上に書いたものと同等に、次を使用できます。

    long durationInMs = TimeUnit.NANOSECONDS.toMillis(delayNS);
ライセンス: CC-BY-SA帰属
所属していません StackOverflow
scroll top