1、类不同
sleep() 来自Thread 类;wait() 来自 Object 类。
2、释放锁
sleep() 不释放锁;wait() 释放锁。
3、用法不同
sleep() 到时间会自动恢复,wait() 可以使用notify() / notifyAll() 直接唤醒。
notify() 和 notifyAll() 的区别?
notify() 唤醒一个线程,notifyAll() 会唤醒所有的线程。
notifyAll()调用后,会将全部线程有等待池转移到锁池,然后参与锁的竞争,竞争到锁的线程则继续执行,不成功则继续在锁池等待锁被释放。
notify() 只会唤醒一个线程,具体唤醒哪一个线程由虚拟机控制。
notifyAll()一般不建议使用。