Die Verwendung von Sleep in Java besteht darin, den aktuell ausgeführten Thread in den Ruhezustand zu zwingen (Ausführung pausieren), zum Beispiel: [Thread.sleep(long millis)] Wenn ein Thread in den Ruhezustand wechselt, wird er nicht wieder lauffähig Nach Ablauf der Ruhezeit kehrt es in den lauffähigen Zustand zurück.
Die Verwendung von Schlaf in Java ist:
Thread.sleep(long millis)
und Thread.sleep(long millis, int nanos)
statische Methoden erzwingen den Strom Ausführung Der Thread schläft (unterbricht die Ausführung), um „den Thread zu verlangsamen“.
Wenn ein Thread schläft, schläft er irgendwo und kehrt erst dann in einen ausführbaren Zustand zurück, wenn er aufwacht.
Wenn die Ruhezeit abläuft, kehrt es in den lauffähigen Zustand zurück.
1. Gründe für den Thread-Ruhezustand: Der Thread wird zu schnell ausgeführt oder muss gezwungen werden, in die nächste Runde einzutreten, da die Java-Spezifikation keine Garantie für eine angemessene Ausführung gibt Drehung.
2. Implementierung von Schlaf: Statische Methode aufrufen .
try { Thread.sleep(1000); } catch (InterruptedException e) { e.printStackTrace(); }
3. Schlafposition: Um anderen Threads eine Chance zur Ausführung zu geben, kann der Aufruf von Thread.sleep()
innerhalb des Threads run()
platziert werden. Dadurch wird sichergestellt, dass der Thread während der Ausführung schläft.
public class TestSleep { public static void main(String[] args) { MyThread2 t1 = new MyThread2("TestSleep"); t1.start(); for(int i=0 ; i <10; i++) System.out.println("I am Main Thread"); } } class MyThread2 extends Thread { MyThread2(String s) { super(s); } public void run() { for(int i = 1; i <= 10; i++) { System.out.println("I am "+getName()); try { sleep(1000); //暂停,每一秒输出一次 }catch (InterruptedException e) { return; } } } }
Hinweis:
1. Der Thread-Ruhezustand ist die beste Möglichkeit, allen Threads eine Chance zum Ausführen zu geben.
2. Der Thread wacht nach Ablauf des Ruhezustands automatisch auf und kehrt in den ausführbaren Zustand zurück, nicht in den laufenden Zustand. Die in sleep() angegebene Zeit ist die Mindestzeit, die der Thread nicht ausgeführt wird. Daher kann die Methode „sleep()“ nicht garantieren, dass der Thread nach Ablauf seines Ruhezustands mit der Ausführung beginnt.
3. Sleep() ist eine statische Methode und kann nur den aktuell laufenden Thread steuern.
Beispiel: ein Zähler, der bis 100 zählt, zwischen jeder Zahl 1 Sekunde pausiert und alle 10 Zahlen eine Zeichenfolge ausgibt
public class MyThread extends Thread { public void run() { for (int i = 0; i < 100; i++) { if ((i) % 10 == 0) { System.out.println("-------" + i); } System.out.print(i); try { Thread.sleep(1000); System.out.print(" 线程睡眠1秒!\n"); } catch (InterruptedException e) { e.printStackTrace(); } } } public static void main(String[] args) { new MyThread().start(); } }
Empfohlenes Tutorial: „ Java-Video-Tutorial"
Das obige ist der detaillierte Inhalt vonWas ist die Verwendung von Schlaf in Java?. Für weitere Informationen folgen Sie bitte anderen verwandten Artikeln auf der PHP chinesischen Website!