Gibt es eine Uhr, einen Instant und den aktuellen Thread, gibt es bereits eine (Hilfs-) Methode in den Java-Bibliotheken, die den aktuellen Thread schlafen lässt, bis die gegebene Uhr den Zeitpunkt erreicht?
Etwas wie
%Vor%?
Ich brauche das in einer Testumgebung, in der ich mit einer benutzerdefinierten verlangsamten Uhr arbeite.
Ich weiß, dass es einfach zu implementieren ist, aber ich würde eine Standardlösung bevorzugen, wenn sie verfügbar ist (aber bis jetzt nicht gefunden).
Zunächst ist Clock
ein wirklich einfache Klasse mit wenig Implementierung und wenige Anwendungen in der Standard-API . SystemClock
, OffsetClock
und TickClock
sind Beispiele in derselben Datei. Die Antwort scheint also Nein, nicht in Standard API .
Wenn Sie die "verlangsamte Uhr" erhalten und diese nicht ändern können, um den gewünschten sleepUntil()
-Kode hinzuzufügen, und sie um verlangsamt wird, könnten Sie etwas tun wie
Dies führt zuerst einen Testlauf durch, um den Taktversatz zu bestimmen, dann schläft eine eingestellte Dauer .
(Vielleicht müssen Sie den Zeitpunkt in sleep
anpassen, um ihn an die andere Uhr anzupassen. Geben Sie Ihren Uhrcode ein, wenn Sie ihn testen / einstellen lassen möchten.)