Difference between wait() and sleep() in java ?




Difference between wait() and sleep() in java ?

Wait() Method Sleep() Method
wait() Method of thread class goes in waiting state
and it won’t come back automatically until
we call the notify() or notifyAll().
sleep() is a method which is used to pause the process for few seconds or the time we want too.
It is called on Object. It is called on Threads.
It is an instant member of java.lang.Object class. It is a static member of java.lang.Thread class.
wait() releases the lock or monitor. sleep() doesn’t releases the lock or monitor while waiting.
wait() is used for inter-thread communication. sleep() is used to introduce pause on execution, generally.
It must be called within the synchronized blocks. It may be called from within or outside the synchronized block.

wait() Example


 synchronized(LOCK)
   {  
      LOCK.wait(); // LOCK is not held
   }

sleep() Example


    synchronized(LOCK)
{  
     Thread.sleep(1000); // LOCK is held
}


Related Searches to Difference between wait() and sleep() in java ?