sleep方法可以让线程进入waiting状态,并且不占用CPU资源,但是不释放锁,直到规定时间后才执行,休眠期间如果被中断,会跑出异常。
不同点
首先,wait方法是Object类中的方法,而sleep方法是Thread中的方法。
其次,对于方法而言,wait可以不用传参,而sleep一定要传参的
第三点,执行wait方法会释放当前对象的锁的,但是sleep并不会释放锁
第四点,wait方法是用在同步方法中。也就是说,要使用wait方法,就必须先获得该对象(代码块,方法)的锁
相同点
两者都会让线程进入阻塞状态,其次两者都可以相应中断,也就是说在休眠过程中可以使用interrupt方法。