最主要区别:sleep没有释放锁,wait释放了锁。两者都可以暂停线程的执行。wait经常被用于线程间通信,sleep通常用于暂停执行。wait后线程不会自动苏醒,需要别的线程调用同步监视器的notify()或者notifyAll()方法,sleep方法执行完毕后,线程会自动苏醒。或者可以使用wait(long timeout)超时后线程会自动苏醒。