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() Examplesynchronized(LOCK) { LOCK.wait(); // LOCK is not held } |
sleep() Examplesynchronized(LOCK) { Thread.sleep(1000); // LOCK is held } |