notify() or notifyAll() method after the time expires. The sleep() method does not release any locks or monitors while waiting, while the wait() method releases locks or monitors while waiting. Syntax of sleep() method publicstaticvoi"/> notify() or notifyAll() method after the time expires. The sleep() method does not release any locks or monitors while waiting, while the wait() method releases locks or monitors while waiting. Syntax of sleep() method publicstaticvoi">

Home  >  Article  >  Java  >  What is the difference between wait() and sleep() methods in Java?

What is the difference between wait() and sleep() methods in Java?

WBOY
WBOYforward
2023-08-26 23:37:21721browse

What is the difference between wait() and sleep() methods in Java?

sleep() method is a static method of the Thread class, which can send the current running The data thread enters the "not runnable" state, and the wait() method is an instance method, we call it using the thread object, and it only affects the object. sleep() The method wakes up or calls the interrupt() method after the time expires, while the wait() method wakes up or calls after the time expires >notify() or notifyAll() method. The sleep() method does not release any locks or monitors while waiting, while the wait() method releases locks or monitors while waiting.

Sleep() method syntax

public static void sleep(long millis) throws InterruptedException

wait() method syntax

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

Example

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

Output

Number in methodOne(): 60
Number in methodTwo(): 4500

The above is the detailed content of What is the difference between wait() and sleep() methods in Java?. For more information, please follow other related articles on the PHP Chinese website!

Statement:
This article is reproduced at:tutorialspoint.com. If there is any infringement, please contact admin@php.cn delete