Gibt es eine Methode in Java 8, um einen Thread bis zu einem Instant mit einer bestimmten Uhr schlafen zu lassen?

8

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).

    
Gustave 30.09.2015, 15:43
quelle

2 Antworten

1

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

%Vor%

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.)

    
serv-inc 03.10.2015 09:38
quelle
0

Das einzige, was ich sehen kann, ist, eine while-Schleife zu erstellen und daraus zu brechen, wenn die Uhr den gegebenen Zeitpunkt erreicht hat.

%Vor%

Für eine feste Uhr würde dies jedoch für immer eine Schleife sein.

    
Tunaki 30.09.2015 16:07
quelle

Tags und Links