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
Freigeben: 2023-08-26 23:37:21
nach vorne
818 Leute haben es durchsucht

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
Nach dem Login kopieren

wait()-Methodensyntax

public final void wait() throws InterruptedException<strong>
</strong>
Nach dem Login kopieren

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();
   }
}
Nach dem Login kopieren

Ausgabe

Number in methodOne(): 60
Number in methodTwo(): 4500
Nach dem Login kopieren

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!

Verwandte Etiketten:
Quelle:tutorialspoint.com
Erklärung dieser Website
Der Inhalt dieses Artikels wird freiwillig von Internetnutzern beigesteuert und das Urheberrecht liegt beim ursprünglichen Autor. Diese Website übernimmt keine entsprechende rechtliche Verantwortung. Wenn Sie Inhalte finden, bei denen der Verdacht eines Plagiats oder einer Rechtsverletzung besteht, wenden Sie sich bitte an admin@php.cn
Beliebte Tutorials
Mehr>
Neueste Downloads
Mehr>
Web-Effekte
Quellcode der Website
Website-Materialien
Frontend-Vorlage