我正在阅读 Jakob Jenkov 的一篇并发教程。在此他提到有时等待线程可能会错过 notify() 信号。这怎么可能?
public class MissedSignal {
//boolean wasSignalled = false;
public void doWait() {
synchronized (this) {
//if(!wasSignalled){
try {
this.wait();
} catch (InterruptedException e) {
}
//}
}
}
public void doNotify() {
synchronized (this) {
//wasSignalled = true;
this.notify();
}
}
}
我无法理解此代码注释部分的使用。正如我认为等待线程永远不会错过通知()信号?有人可以解释一下...我是java新手,我没有在谷歌上找到这个答案....在此先感谢