当前位置: 代码迷 >> J2SE >> synchronized wait notify,该怎么解决
  详细解决方案

synchronized wait notify,该怎么解决

热度:508   发布时间:2016-04-24 17:56:25.0
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已经被释放了
  相关解决方案