wait和notify函數的規範代碼模板
阿新 • • 發佈:2017-05-27
tar int ase sync 變化 ava 條件判斷 clas queue
// The standard idiom for calling the wait method in Java
synchronized (sharedObject) {
while (condition) {
sharedObject.wait();
// (Releases lock, and reacquires on wakeup)
}
// do action based upon condition e.g. take or put into queue
}
⑤多線程中測試某個條件的變化用 if 還是用 while?
說是要把if換成while的理由,應該是wait線程被喚醒之後,會繼續從wait那裏往下面執行,如果是if的話,就會直接往下面執行,不會再判斷if的狀態了;但是如果是while的話,從wait那裏往下面執行,然後還會判斷while中的條件,如果==0的話,還是會繼續阻塞,如果是>0,則會執行while語句塊外面的remove吧?!其中關鍵就是被notify喚醒之後,是否會執行條件判斷
http://www.cnblogs.com/hapjin/p/5492645.html
wait和notify函數的規範代碼模板