当前位置: 代码迷 >> J2SE >> 一个已经执行在sleep中的线程,能不能通过notify来唤醒.解决办法
  详细解决方案

一个已经执行在sleep中的线程,能不能通过notify来唤醒.解决办法

热度:29   发布时间:2016-04-24 12:51:54.0
一个已经执行在sleep中的线程,能不能通过notify来唤醒..
好象wait是可以的..

------解决方案--------------------
wait和sleep是不同的,wait是阻塞,sleep是休眠。
------解决方案--------------------
Java code
notify()           唤醒在此对象监视器上等待的单个线程。
------解决方案--------------------
sleep不行,至少我不会,呵呵
常规的编程方式是适用wait
前几天正好帮网友写了个demo
http://topic.csdn.net/u/20080926/21/2d0b379f-7e06-4309-944a-ddb9a13e835a.html
------解决方案--------------------
mark
------解决方案--------------------
sleep和wait不同的地方在于,sleep的时候不会释放线程所有的锁,而wait会释放~!
------解决方案--------------------
sleep和wait不同的地方在于,sleep的时候不会释放线程占有的锁,而wait会释放~!
------解决方案--------------------
notify不能唤醒sleep中的线程,但是可以唤醒wait的线程。wait的机制有点和c语言中的事件机制比较像,wait中的线程是等待某个事件的发生,notify就相当于通知这个事件已经发生了。sleep中的线程只是在等待系统的时间片信号,所以notify没有作用。
------解决方案--------------------
sleep()方法,经过指定休眠时间之后,线程可以自动运行。
wait() 方法使线程等待,直到发生超时或另一线程调用同一对象的notify()或notifyAll()方法;
调用wait()时释放所持有的钥匙让另一等待线程进入监视区。而调用notify()或notifyAll()后再次请求钥匙,希望重新进入监视区。
  相关解决方案