我正在通過Jakob Jenkov的一個併發教程。在這裏他提到有時候notify()信號會被等待線程漏掉。這怎麼可能?java中遺漏了什麼信號?如何調用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();
}
}
}
我無法理解此代碼的註釋部分的用法。因爲我認爲notify()信號永遠不會被等待線程錯過?可能有人請解釋...我是新來的java,我沒有找到在谷歌上的這個答案....在此先感謝