黑马程序员技术交流社区

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

作者: 落琪123    时间: 2015-10-17 10:26
标题: sleep()和wait()的区别?
sleep()和wait()之前有什么的区别?
作者: android小学徒    时间: 2015-10-17 11:21
它们最大本质的区别是:sleep()不释放同步锁,wait()释放同步锁.
作者: hyzhw    时间: 2015-10-17 17:08
sleep必须捕获异常,而wait不需要捕获异常
作者: fwqk123    时间: 2015-10-17 17:48
释放同步锁我理解 但是捕获异常是怎么回事 求解答
作者: 奋斗的丫丫    时间: 2015-10-17 19:09
1、        wait()是属于对象锁的
        sleep()是属于线程的
2、        wait()方法中可以书写时间值也可以不书写时间值
        sleep()方法中必须书写一个时间值
3、        wait()方法执行后,线程会一直处于等待状态。在唤醒后才会转为运行状态或阻塞状态
        sleep()方法执行后,也会处于等待状态。但是时间一到,就会转为运行状态或阻塞状态
4、        wait()方法只能以书写在同步代码块内
        sleep()可以书写在同步代码块内,也可以书写在同步代码块外

作者: bukai123    时间: 2015-10-18 18:12
对于sleep()方法,我们首先要知道该方法是属于Thread类中的。而wait()方法,则是属于Object类中的。

sleep()方法导致了程序暂停执行指定的时间,让出cpu该其他线程,但是他的监控状态依然保持者,当指定的时间到了又会自动恢复运行状态。

在调用sleep()方法的过程中,线程不会释放对象锁。

而当调用wait()方法的时候,线程会放弃对象锁,进入等待此对象的等待锁定池,只有针对此对象调用notify()方法后本线程才进入对象锁定池准备获取对象锁进入运行状态。




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