基本的差别
1、sleep 是Thread 类的方法,wait 是Object类中定义的方法
2、sleep()方法可以在任何地方使用
3、wait()方法只能在synchronized方法中使用,或者在synchronized块中使用
最主要的本质区别:
1、Thread.sleep 只会让出CPU ,会将线程处于阻塞状态,不会导致锁行为的改变,不会释放锁
2、Object.wait不仅让出CPU,还会释放已经占用的同步资源锁
问题:为什么wait()方法一定要写到synchronized方法或者synchronized块中》
----》因为调用wait方法一定要释放锁,没有锁的话,就不会释放锁呀。