黑马程序员技术交流社区
标题:
sleep() 和 wait() 有什么区别?
[打印本页]
作者:
松松2016
时间:
2016-9-25 18:41
标题:
sleep() 和 wait() 有什么区别?
sleep() 和 wait() 有什么区别?
作者:
lipeng518
时间:
2016-9-25 21:51
其实sleep不会释放锁,一直占用.而wait会释放锁资源,其他进程能够进行锁的代码块等等
作者:
pdog
时间:
2016-9-26 01:52
另外就一个必须传入参数 ,一个看心情
一个是Thread的方法 一个是Object的方法
作者:
小东先森
时间:
2016-9-26 10:03
本帖最后由 小东先森 于 2016-9-26 10:07 编辑
sleep是在指定时间内休眠,wait是等待,等待别人唤醒,如果不唤醒就一直等。
作者:
zhou987932946
时间:
2016-9-26 15:43
功能差不多,都用来进行线程控制,他们最大本质的区别是:sleep()不释放同步锁,wait()释放同步缩.
还有用法的上的不同是:sleep(milliseconds)可以用时间指定来使他自动醒过来,如果时间不到你只能调用interreput()来强行打断;wait()可以用notify()直接唤起.
作者:
Jarc
时间:
2016-9-26 16:04
sleep(milliseconds)可以用时间指定来使他自动醒过来,如果时间不到你只能调用interreput()来强行打断;wait()不传参数,可以用notify()直接唤起.sleep不释放锁,.而wait释放锁,
作者:
请叫我院长
时间:
2016-9-26 17:21
sleep必须传参,指定的是睡眠的时间
wait可以传也可以不传参,传参指的是过多久才执行等待
不传参指的是立即等待
作者:
tanghuiTom
时间:
2016-9-26 21:29
它们最大本质的区别是:sleep()不释放同步锁,wait()释放同步锁.
还有用法的上的不同是:sleep(milliseconds)可以用时间指定来使他自动醒过来,如果时间不到你只能调用interreput()来强行打断;wait()可以用notify()直接唤起.
sleep和wait的区别还有:
1。这两个方法来自不同的类分别是Thread和Object
2。最主要是sleep方法没有释放锁,而wait方法释放了锁,使得其他线程可以使用同步控制块或者方法。
3。wait,notify和notifyAll只能在同步控制方法或者同步控制块里面使用,而sleep可以在
任何地方使用
synchronized(x){
x.notify()
//或者wait()
}
4。sleep必须捕获异常,而wait,notify和notifyAll不需要捕获异常
欢迎光临 黑马程序员技术交流社区 (http://bbs.itheima.com/)
黑马程序员IT技术论坛 X3.2