What is the difference between the wait() and sleep() methods?
When things go wrong, sleep throws an IllegalMonitorStateException whereas wait throws an InterruptedException.
Sleep allows for multi-threading whereas wait does not.
A wait can be woken up by another Thread calling notify whereas a sleep cannot.
Only Threads can wait, but any Object can be put to sleep.