Czy metoda System.currentTimeMillis () naprawdę zwraca aktualny czas?

Na podstawie pomysłów przedstawionych wpołączyć Zaimplementowałem kilka różnych „metod snu”. Jedną z takich metod był „sen binarny”, który wygląda tak:

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

Ponieważ sprawdzenie, czy następny krok jest już osiągnięty, ma miejsce na początku, oczekiwałbym, że metoda działa zbyt długo. Ale sumaryczny rozkład błędu symulacji (oczekiwany czas - w czasie rzeczywistym) wygląda tak:alt tekst http://img267.imageshack.us/img267/4224/errorvscummulativearran.jpg

Czy ktoś ma pomysł, dlaczego otrzymuję takie wyniki? Może metoda System.currentTimeMillis () naprawdę nie zwraca bieżącego czasu?

BR,

Markus

@irreputable

Kiedy dokonałem oceny, stworzyłem również krzywą dzwonową za pomocą niemieckiego programu statystycznego. Ponieważ nie można było zmienić podpisu, oto angielskie tłumaczenie wszystkich istotnych elementów:

Häufigkeit = częstotliwość

Fehler = błąd

Mittelwert = średnia

Std-Abw = odchylenie standardowe

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

questionAnswers(3)

yourAnswerToTheQuestion