Umwandlung von Nanosekunden bis Millisekunden und Nanosekunden < 999999 in Java

Frage ich mich, was die genaue Art und Weise der Umwandlung einer großen Nanosekunden-Wert ist in Millisekunden und Nanosekunden mit einer oberen Grenze auf die Nanosekunden von 999999. Das Ziel ist die Kombination der Nanosekunden und Millisekunden Werte ein um die maximale Auflösung möglich, die mit der Grenze gegeben. Dies ist für die Vergleichbarkeit mit der sleep /wait-Verfahren und einige andere externe Bibliothek gibt große Nanosekunden-Werte.

Edit: mein code sieht wie folgt nun:

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) {

        }
    }
}

Cheers,
Chris

  • es ist erwähnenswert, dass dies die Zeit ist ein Hinweis auf das OS zu warten, mindestens so lang sein. In Windows und Linux, die Verzögerung ist in der Regel innerhalb von 2 ms, aber es kann sehr lange. IMHO solltest Du dir keine Gedanken über die nano-Sekunden-Zeitmessung, wie Sie sind unwahrscheinlich, um zu sehen, keinen Unterschied.
Schreibe einen Kommentar