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 | Description |
---|---|
SimulationClock(java.time.Instant startState,
double simulationSpeed) |
Erstellt eine neue SimulationClock
|
Modifier and Type | Method | 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.
Object.wait(long) , verwendet aber diese Uhr um die Wartezeit zu bestimmen. |
java.time.Clock |
withZone(java.time.ZoneId zone) |
equals, fixed, hashCode, millis, offset, system, systemDefaultZone, systemUTC, tick, tickMillis, tickMinutes, tickSeconds
clone, finalize, getClass, notify, notifyAll, toString, wait, wait, wait
durationUntil, simulationClock, sleep, sleepUntil, systemClock, wait, waitUntil
public 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
WaitableClock
Thread.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 WaitableClock
millis
- 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
WaitableClock
Object.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 WaitableClock
obj
- 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.Clock
public java.time.Clock withZone(java.time.ZoneId zone)
withZone
in class java.time.Clock
public java.time.Instant instant()
instant
in class java.time.Clock