首先他们对同步锁的影响不同:如果当前线程有同步锁,并且使用了sleep方法,那么sleep方法是不会释放同步锁的;wait方法是会释放同步锁的,并且会让其他方法进来执行。
其次,他们的使用范围不同:sleep方法在任何地方都可以使用;而wait只可以在同步代码块里面使用,在其他地方使用wait方法,会报异常。
他们的恢复时间也不同:sleep线程睡眠方法会在睡眠时间过后自动恢复;而wait方法是线程的等待方法,没有方法唤醒他,他是会一直等待下去;需要其他线程调用notify()方法才能恢复。