Me pregunto cuál es la forma más precisa de convertir un gran valor de nanosegundos en milisegundos y nanosegundos, con un límite superior en los nanosegundos de 999999. El objetivo es combinar los valores de nanosegundos y milisegundos para garantizar la máxima resolución posible con el límite otorgado. Esto es para la comparabilidad con los métodos sleep/wait y alguna otra biblioteca externa que proporciona grandes valores de nanosegundos.Conversión de nanosegundos a milisegundos y nanosegundos <999999 en Java
Editar: mi código tiene el siguiente ahora:
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
vale la pena señalar que esta vez es una pista para que el sistema operativo espere al menos este tiempo. En Windows y Linux, la demora suele ser de 2 ms, pero puede ser mucho más larga. En mi humilde opinión, no debe preocuparse por el tiempo de los nano segundos ya que es muy poco probable que vea alguna diferencia. –