前言:
当前咱们对“c语言sleep和wait的区别”大概比较注意,朋友们都想要学习一些“c语言sleep和wait的区别”的相关文章。那么小编同时在网摘上搜集了一些对于“c语言sleep和wait的区别””的相关文章,希望咱们能喜欢,大家快快来学习一下吧!本文为小编原创文章,首发于Java识堂,一个高原创,高收藏,有干货的微信公众号,一起成长,一起进步,欢迎关注
介绍
基本的差别
sleep是Thread类的方法,wati是Object类的方法
sleep方法可以在任何地方使用
wait只能在synchronized方法或synchronized块中使用
最主要的本质区别
Thread.sleep只会让出CPU,不会导致锁行为的改变
Object.wait不仅让出CPU,还会释放已经占有的同步资源锁
示例代码
输出为
Thread A is waiting to get lockThread A get lockThread B is waiting to get lockThread A is doneThread B get lockThread B is done
由输出可以看到Thread.sleep不会释放锁,因为A完成了B才拿到锁
我们将sleep和wait换一下,输出为
Thread A is waiting to get lockThread A get lockThread B is waiting to get lockThread B get lockThread B is doneThread A is done
可以看到Object.wait会释放锁,因为A还没有执行完,锁就被B获得了
版权声明:
本站文章均来自互联网搜集,如有侵犯您的权益,请联系我们删除,谢谢。
标签: #c语言sleep和wait的区别