public final class SimulationClock extends WaitableClock
WaitableClock als simulierte Uhr, die einen
beliebigen Startzeitpunkt hat und auch schneller oder langsamer gehen kann,
als die reale Systemzeit.| Constructor and Description |
|---|
SimulationClock(java.time.Instant startState,
double simulationSpeed)
Erstellt eine neue SimulationClock
|
| Modifier and Type | Method and Description |
|---|---|
java.time.ZoneId |
getZone() |
java.time.Instant |
instant() |
void |
setInstant(java.time.Instant start)
Verstellt den aktuellen Zeitpunkt.
|
void |
sleep(long millis)
Tut das gleiche wie
Thread.sleep(long), verwendet aber diese Uhr um die Wartezeit zu bestimmen. |
java.time.Duration |
wait(java.lang.Object obj,
long millis)
Tut das gleiche wie obj.
|
java.time.Clock |
withZone(java.time.ZoneId zone) |
durationUntil, simulationClock, sleep, sleepUntil, systemClock, wait, waitUntilpublic SimulationClock(java.time.Instant startState,
double simulationSpeed)
startState - Startzeitpunkt der UhrsimulationSpeed - Simulationsgeschwindigkeit (1 = reale Geschwindigkeit, 10 =
die Uhr geht 10 mal schneller, als die reale Zeit, usw.)public void setInstant(java.time.Instant start)
start - Neue aktuelle Uhrzeit.public void sleep(long millis)
throws java.lang.InterruptedException
WaitableClockThread.sleep(long), verwendet aber diese Uhr um die Wartezeit zu bestimmen. Wenn diese Uhr beispielsweise
um Faktor 10 beschleunigt läuft, dann verringert sich die reale Wartezeit um Faktor 10.sleep in class WaitableClockmillis - Millisekunden, fall 0 oder negativ wird nicht gewartet.java.lang.InterruptedException - Exceptionpublic java.time.Duration wait(java.lang.Object obj,
long millis)
throws java.lang.InterruptedException
WaitableClockObject.wait(long), verwendet aber diese Uhr um die Wartezeit zu bestimmen. Wenn diese Uhr beispielsweise
um Faktor 10 beschleunigt läuft, dann verringert sich die reale Wartezeit um Faktor 10. Im Gegensatz zu WaitableClock.sleep(Duration) kann
das Warten mit Object.notifyAll() unterbrochen werden und es muss auf das Objekt synchronisiert werden.wait in class WaitableClockobj - Objekt, für das Object.wait(long) aufgerufen werden sollmillis - Millisekunden, fall 0 oder negativ wird nicht gewartet.java.lang.InterruptedException - Exceptionpublic java.time.ZoneId getZone()
getZone in class java.time.Clockpublic java.time.Clock withZone(java.time.ZoneId zone)
withZone in class java.time.Clockpublic java.time.Instant instant()
instant in class java.time.Clock