首页 诗词 字典 板报 句子 名言 友答 励志 学校 网站地图
当前位置: 首页 > 教程频道 > JAVA > J2SE开发 >

synchronized wait notify,该怎么解决

2011-12-25 
synchronized wait notifythread1先synchronized一个object,再调用object的wait方法。但有哪个线程能调用ob

synchronized wait notify
thread1先synchronized   一个object,再调用object的wait方法。但有哪个线程能调用object的notify方法呢?如果它能调用的话,它肯定是有该oject的监视器的,但这个监视器已经被thread1得到了。所以,这样看来,thread1似乎不能被唤醒了。

[解决办法]
thread1调用了wait的时候就释放了锁,这时如果有别的线程就可以获取object的锁并调用notify唤醒thread1
[解决办法]
wait方法不会占用锁。
synchronized(lock){
doSomething1...
lock.wait();
doSomething2...
}
doSomething1和doSomething2是在lock上synchronized的,但wait动作时这个synchronized已经被释放了

热点排行