• wait method releases the lock, sleep method does not release the locks.
  • wait method available in the object class, sleep() is available in Thread class.
  • the wait is a nonstatic method, sleep is a static method.
  • the wait should be notified by notifying or notifyAll, In case of sleep – After the specified time sleep is get completed and gets notified automatically.
  • wait method must be called from synchronized block or synchronize method otherwise it will throw IllegalMonitorState Exception, sleep must be called from anywhere there are no specified criteria.