黑马程序员技术交流社区

标题: wait 和sleep的区别? [打印本页]

作者: 蒲公英在飞    时间: 2014-7-18 07:21
标题: wait 和sleep的区别?
wait 可以指定时间也可以不指定时间。
sleep 必须指定时间。
在同步中时对于cpu的执行权和锁处理不同。
wait:释放执行权,释放锁。
sleep:释放执行权,不释放锁。
作者: 阿磊    时间: 2014-7-18 09:34
sleep是要指定时间的,自带唤醒功能,就好像一个人困了,去睡觉了,但是订了闹钟,这是他睡觉了什么都做不了了,释放了执行权,等到时间到了,闹钟响了,他就醒了,又可以有获取执行权的资格了。
而wait就没有自动唤醒功能,就好像一个人困了,睡觉没有闹钟,但是他跟一个叫notify说我先睡觉,到时候你叫我啊,所以,这是只要wait,他就睡觉了,释放了执行权,如果notify出去一直没有回来,那么他是不会醒的,只有notify出现了叫醒了他,他才会有获取执行权的资格了。wait是由notify把它唤醒的。
作者: 不去会死    时间: 2014-7-18 15:13
给你将一个简单的例子吧:你去买票,需要排队,等排到你的时候售票员告诉你需要等一下,如果你就在窗口外等,你后面的人买不了票,就是sleep。要是让你到旁边等,后面的人可以买票,就是wait。能懂?




欢迎光临 黑马程序员技术交流社区 (http://bbs.itheima.com/) 黑马程序员IT技术论坛 X3.2