The following section captures the main difference between wait and sleep method
- wait sends the current thread to non-runnable state
- thread releases the lock on the object before going to non-runnable state.
- wait() method is defined on Object class
- wait() is a instance method
- wait() should be called when the thread has already acquired the lock on the object
- the thread will be in non-runnable state untill the time is elapsed or another thread invoked notify() / notifyAll() method on the object
- sleep() method will send the current thread to non-runnable state for the specified time.
- sleep() method is defined in Thread class
- sleep() method is a Static method.
- sleep() does not cause the thread to releases the lock on the object