1. 程式人生 > >wait和notify函數的規範代碼模板

wait和notify函數的規範代碼模板

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函數的規範代碼模板