Java/sleep() 和 wait() 的区别,以及 notify() 和 notifyall() 的区别
sleep() 和 wait() 的区别
- sleep() 是 Thread 类的方法,wait() 是 Object 类的方法
- sleep() 方法可以在任何地方使用。wait() 方法只能在 synchronized 方法或者 synchronized 块中使用
- 最主要的本质区别:Thread.sleep() 只会让出 CPU,不会使得当前线程释放锁,不会影响锁的相关行为。Object.wait() 不仅使得当前线程会让出 CPU,还会释放已经占用的同步资源锁。如下代码: