veröffentlicht am: 01.07.2022 zuletzt aktualisiert am: 06.02.2023
In Java gibt es häufig Situationen, in denen ein Thread für eine bestimmte Zeit in einen Ruhezustand versetzt werden muss. Zum Beispiel, wenn ein Programm zu einem anderen Thread wechseln muss oder um den Ausführungsprozess eines Programms zu verlangsamen. Wie kann man also solche Situationen bewältigen? Mit der Java sleep()-Methode! In Java kann die sleep()-Methode der Thread-Klasse verwendet werden, um mit solchen Situationen umzugehen.
In diesem Artikel werden wir uns mit den unten aufgeführten Aspekten der Java-Methode sleep befassen:
So, lass uns loslegen!
Java sleep() ist eine eingebaute statische Methode (mehr über Java static erfahren) der Klasse java.lang.Thread, die die Ausführung des laufenden Threads für eine bestimmte Zeitspanne pausiert.
Die Java Thread-Klasse bietet zwei überladene Versionen der sleep()-Methode:
Werfen wir einen Blick auf das unten stehende Snippet, um die grundlegende Syntax der sleep()-Methode zu verstehen: public static void sleep(long ms) throws InterruptedException
public static void sleep(long ms) throws InterruptedException
Anhand des obigen Schnipsels konnten wir die folgenden Punkte feststellen:
Hier ist die grundlegende Syntax der nicht-nativen sleep()-Methode:
public static void sleep(long ms, int ns)throws InterruptedException
Der obige Ausschnitt verdeutlicht die unten aufgeführten Punkte:
InterruptedException ist eine Ausnahme in Java, die auftritt, wenn sich der aktuelle Thread in einem schlafenden Zustand befindet und ein anderer Thread ihn unterbricht. Die InterruptedException kann mit dem Schlüsselwort throws oder mit einer try-catch-Anweisung behandelt werden.
Betrachten wir die unten aufgeführten Punkte, um die Funktionsweise der Methode Thread.sleep() besser zu verstehen:
Thread.sleep(user-specified time);
Bis jetzt haben wir alle grundlegenden Konzepte der Java-Methode sleep() kennengelernt. Nun ist es an der Zeit, all diese Konzepte praktisch umzusetzen.
Betrachten wir das unten stehende Programm, um zu verstehen, wie man die sleep()-Methode auf dem Haupt-Thread in Java verwendet:
public class MeinJavaSleep { public static void main(String[] args) throws InterruptedException { int count = 5; while (count <= 10) { System.out.println("Ich mach ein kurzes Nickerchen"); Thread.sleep(2000); System.out.println(Thread.currentThread().getName() + " " +count); count++; } } }
In dem oben genannten Java-Programm haben wir die folgenden Aufgaben durchgeführt:
Die Ausgabe zeigt, dass das obige Java-Programm 12 Sekunden für die Ausführung von 6 Threads benötigt. Dies bestätigt die Funktionsweise der sleep()-Methode.
In diesem Java-Programm werden wir lernen, wie man die sleep()-Methode für einen benutzerdefinierten Thread verwendet:
public class Main extends Thread { @Override public void run() { int count = 8; while (count <= 10) { System.out.println(Thread.currentThread().getName() + " " + "Counter:" + count); try { Thread.sleep(2000); count++; } catch (InterruptedException excep) { System.out.println("InterruptedException aufgetreten"); } } } public static void main(String[] args) { Main thread1 = new Main(); Main thread2 = new Main(); thread1.start(); thread2.start(); } }
Die Ausgabe zeigt, dass bei der Ausführung eines benutzerdefinierten Threads der Thread-Name zusammen mit dem Wert der Variablen count nach jeweils 2 Sekunden angezeigt wird. Zwischen den angegebenen Zeitintervallen aktiviert der Thread seinen Schlafmodus.
Dieses Programm soll helfen zu verstehen, was passiert, wenn wir der Methode sleep() eine negative Zeit übergeben:
public class JavaSleepExample { public static void main(String[] args) throws InterruptedException { int count = 5; while (count <= 10) { Thread.sleep(-2000); System.out.println(Thread.currentThread().getName() + + count); count++; } } }
Diesmal geben wir einen negativen Wert als Schlafzeit an, d. h. -2000 Millisekunden, weshalb die Methode sleep() die folgende Ausgabe erzeugt:
Die Ausgabe zeigt, dass der Compiler eine IllegalArgumentException auslöst, wenn wir einen negativen Wert an die Java sleep()-Methode übergeben.
Java sleep() ist eine eingebaute statische Methode der Klasse Thread, die dazu dient, die Ausführung des aktuell ausgeführten Threads anzuhalten. Der Aufruf der sleep()-Methode stoppt die Ausführung des aktuellen Threads und versetzt ihn für eine bestimmte Zeit in den Schlafzustand. Die InterruptedException tritt auf, wenn sich der aktuelle Thread in einem schlafenden Zustand befindet und von einem anderen Thread unterbrochen wird; sie kann jedoch mit der try-catch-Anweisung oder dem Schlüsselwort throws behandelt werden. In diesem Beitrag wurde die Verwendung der Methode Thread.sleep() anhand einiger geeigneter Beispiele erläutert.
😩 Gelangweilt von den Udemy & YouTube-Tutorials?!
Lerne spielerisch Java und komme deiner gutbezahlten (und an der 🌴 liegenden) Traumkarriere einen Schritt weiter.
"Für Leute die gerne Python oder Java lernen wollen ist Codegree klasse. Ist nicht wie bei anderen Konkurrenten auf Videokursen aufgebaut..."
- Lennart Sparbier
100% kostenlos registrieren · keine Kreditkarte notwendig
Im Gegensatz zu der Abendschule oder der alteingesessenen Uni lernst du bei codegree die Sprachen & Pakete, die wirklich im Jobmarkt gesucht werden.
100% kostenlos registrieren · keine Zahlungsdaten notwendig