共同点:
1、在多线程环境下,都可以指定阻塞的毫秒数,并返回。
2、二者都可以通过Interrupt()方法打断现成的暂停状态,从而使线程立即抛出InterruptedException。
不同点:
1、wait()是Object类的方法,而sleep()是在Thread类中方法。
2、每一个对象都有一个锁来控制同步方法,Synchronized关键字可以和对象的锁交互,来实现同步。
sleep()方法没有释放锁,而wait()方法释放了锁,使得其他线程可以同步控制块或者方法。
3、wait()方法只能在同步控制代码块或者方法中使用,sleep()可以在任何地方使用。
4、sleep() 方法必须捕获异常。wait()不需要捕获异常。