Difference between sleep and wait in java?
Both are used to pause thread that is currently running, however, sleep() is meant for short pause because it does not release lock, while wait() is meant for conditional wait.This is why it releases lock, which can then be developed by a different thread to alter the condition of which it is waiting.
The wait() method belongs to java.lang.Object class, thus can be called on any Object. The sleep() method belongs to java.lang.Thread class, thus can be called on Threads.
The wait() method can only be called from Synchronized context . The sleep() method can be called from any context.
The wait() method releases the lock on an object and gives others chance to execute. The sleep() method does not releases the lock of an object for specified time or until interrupt.
A waiting thread can be awake by notify() or notifyAll() method. A sleeping can be awaked by interrupt or time expires.