En el JDK, se implementa como:¿Cuál es el propósito de dormir (long millis, int nanos)?
public static void sleep(long millis, int nanos)
throws InterruptedException {
if (millis < 0) {
throw new IllegalArgumentException("timeout value is negative");
}
if (nanos < 0 || nanos > 999999) {
throw new IllegalArgumentException(
"nanosecond timeout value out of range");
}
if (nanos >= 500000 || (nanos != 0 && millis == 0)) {
millis++;
}
sleep(millis);
}
lo que significa que el argumento nanos
no hacer nada en absoluto.
¿Está la idea detrás de esto de que en el hardware con tiempos más precisos, la JVM puede proporcionar una mejor implementación para ello?
bueno, hace * algo *, choca millis si es más de medio ms o si ms es cero. –
bueno, sí, no * nada * ... pero es prácticamente inútil. –
¿El código fuente es de Open JDK? – Marcelo