Heim >Java >javaLernprogramm >Was ist der Unterschied zwischen den Methoden wait() und sleep() in Java?
Die
sleep()-Methode ist eine statische Methode der Thread-Klasse, die den aktuell laufenden Datenthread in den „unrunnable“-Zustand versetzen kann, und die wait()-Methode ist eine Instanzmethode. Wir rufen sie mithilfe eines Thread-Objekts auf und sie wirkt sich nur auf dieses Objekt aus. Die Methode sleep() wacht auf oder ruft die Methode interrupt() auf, nachdem die Zeit abgelaufen ist, während die Methode wait() aufwacht oder die Methode >notify() oder notifyAll() aufruft die Zeit läuft ab. Die Methode sleep() gibt während des Wartens keine Sperren oder Monitore frei, während die Methode wait() während des Wartens Sperren oder Monitore freigibt.
Sleep()-Methodensyntaxpublic static void sleep(long millis) throws InterruptedException
public final void wait() throws InterruptedException<strong> </strong>
public class ThreadTest implements Runnable { private int number = 10; public void methodOne() throws Exception { synchronized(this) { number += 50; System.out.println("Number in methodOne(): " + number); } } public void methodTwo() throws Exception { synchronized(this) { Thread.sleep(2000); // calling sleep() method this.wait(1000); // calling wait() method number *= 75; System.out.println("Number in methodTwo(): " + number); } } public void run() { try { methodOne(); } catch (Exception e) { e.printStackTrace(); } } public static void main(String[] args) throws Exception { ThreadTest threadTest = new ThreadTest(); Thread thread = new Thread(threadTest); thread.start(); threadTest.methodTwo(); } }
Number in methodOne(): 60 Number in methodTwo(): 4500
Das obige ist der detaillierte Inhalt vonWas ist der Unterschied zwischen den Methoden wait() und sleep() in Java?. Für weitere Informationen folgen Sie bitte anderen verwandten Artikeln auf der PHP chinesischen Website!