Heim >Java >javaLernprogramm >Was ist der Unterschied zwischen den Methoden wait() und sleep() in Java?

Was ist der Unterschied zwischen den Methoden wait() und sleep() in Java?

WBOY
WBOYnach vorne
2023-08-26 23:37:21799Durchsuche

Die

Was ist der Unterschied zwischen den Methoden wait() und sleep() in Java?

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()-Methodensyntax

public static void sleep(long millis) throws InterruptedException

wait()-Methodensyntax

public final void wait() throws InterruptedException<strong>
</strong>

Beispiel

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();
   }
}

Ausgabe

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!

Stellungnahme:
Dieser Artikel ist reproduziert unter:tutorialspoint.com. Bei Verstößen wenden Sie sich bitte an admin@php.cn löschen