¿El método System.currentTimeMillis () realmente devuelve la hora actual?

Basado en ideas presentadas enenlazar Implementé varios "métodos de sueño" diferentes. Uno de estos métodos fue el "sueño binario", que se parece a esto:

while (System.currentTimeMillis() < nextTimeStamp)
{
sleepTime -= (sleepTime / 2);
sleep(sleepTime);
}

Debido a que la verificación de si ya se ha alcanzado el siguiente paso de tiempo tiene lugar al principio I, se esperaría que el método se esté ejecutando durante demasiado tiempo. Pero la distribución acumulativa del error de simulación (tiempo esperado - tiempo real) se ve así:texto alt http://img267.imageshack.us/img267/4224/errorvscummulativearran.jpg

¿Alguien tiene una idea de por qué estoy obteniendo estos resultados? Tal vez el método System.currentTimeMillis () realmente no devuelve la hora actual?

BR

Markus

@irreputable

Cuando realicé la evaluación, también creé una curva de campana utilizando un programa estadístico alemán. Debido a que no fue posible cambiar el título, aquí está la traducción al inglés de todos los elementos relevantes:

Häufigkeit = frecuencia

Fehler = error

Mittelwert = promedio

Std-Abw = desviación estándar

texto alt http://img694.imageshack.us/img694/2254/bellcurve.jpg

Respuestas a la pregunta(3)

Su respuesta a la pregunta