sleep 和wait的差别

基本的差别

1、sleep 是Thread 类的方法,wait 是Object类中定义的方法

2、sleep()方法可以在任何地方使用

3、wait()方法只能在synchronized方法中使用,或者在synchronized块中使用

 

最主要的本质区别:

1、Thread.sleep 只会让出CPU ,会将线程处于阻塞状态,不会导致锁行为的改变,不会释放锁

2、Object.wait不仅让出CPU,还会释放已经占用的同步资源锁

 

问题:为什么wait()方法一定要写到synchronized方法或者synchronized块中》

----》因为调用wait方法一定要释放锁,没有锁的话,就不会释放锁呀。

posted @ 2019-04-07 10:30  VING_963  阅读(154)  评论(0)    收藏  举报