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.
public 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
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!