1. 程式人生 > >zbb20180929 thread notify()與notifyAll()的區別

zbb20180929 thread notify()與notifyAll()的區別

csdn utm tail 當前 source 調用 net 沒有 特權

notify():

喚醒在此對象監視器上等待的單個線程。如果所有線程都在此對象上等待,則會選擇喚醒其中一個線程。選擇是任意性的,並在對實現做出決定時發生。線程通過調用其中一個 wait 方法,在對象的監視器上等待。

直到當前線程放棄此對象上的鎖定,才能繼續執行被喚醒的線程。被喚醒的線程將以常規方式與在該對象上主動同步的其他所有線程進行競爭;例如,喚醒的線程在作為鎖定此對象的下一個線程方面沒有可靠的特權或劣勢。

notifyAll():

喚醒在此對象監視器上等待的所有線程。線程通過調用其中一個 wait 方法,在對象的監視器上等待。

直到當前線程放棄此對象上的鎖定,才能繼續執行被喚醒的線程。被喚醒的線程將以常規方式與在該對象上主動同步的其他所有線程進行競爭;例如,喚醒的線程在作為鎖定此對象的下一個線程方面沒有可靠的特權或劣勢。

--------------------- 本文來自 PettyKoKo 的CSDN 博客 ,全文地址請點擊:https://blog.csdn.net/qq_31028891/article/details/78036234?utm_source=copy

zbb20180929 thread notify()與notifyAll()的區別