两个都是让程序暂停的方法,都可以指定暂停时间。
不同点:
1.sleep()属于 Thread 类,wait()属于 Object 类定义的方法
2.sleep()方法可以在程序任何地方使用,而 wait()方法只能在 synchronized 方法或 synchronized 块中使用。
3.Thread.sleep()方法睡眠时只会让出 CPU,不会释放锁,时间到自动恢复运行状态;
Object.wait()方法不仅让出 CPU,而且还会释放已占用的同步资源锁,被唤醒后(notify()方法)再次进入对象锁的争夺队列中,这也是为什么 wait()方法只能在 synchronized 中使用的原因,(因为要释放锁,所以必须要先获得锁)。