notify和notifyAll區(qū)別

1.如果線程調用了對象的wait方法,那么線程便會處于該對象的等待池中,等待池中的線程不會去競爭該對象的鎖;
2.當有線程調用了notifyAll方法(喚醒所有wait線程)或notify方法(只隨機喚醒一個wait線程),被喚醒的線程便會進入該對象的鎖池中,所持中的線程回去競爭該對象鎖,也就是說,調用了notify后只要一個線程會由等待池進入鎖池,而notifyAll會將該對象等待池內的所有線程移動到鎖池中,等待鎖競爭;
3.所謂喚醒線程,就是將線程由等待池移動鎖池,notifyAll調用后,會將全部線程由等待池移動到鎖池,然后參與鎖池競爭,競爭成功則繼續(xù)執(zhí)行,如果不成功則留在鎖池等待鎖被釋放后再次參與競爭。notify只會喚醒一個線程。

?著作權歸作者所有,轉載或內容合作請聯(lián)系作者
【社區(qū)內容提示】社區(qū)部分內容疑似由AI輔助生成,瀏覽時請結合常識與多方信息審慎甄別。
平臺聲明:文章內容(如有圖片或視頻亦包括在內)由作者上傳并發(fā)布,文章內容僅代表作者本人觀點,簡書系信息發(fā)布平臺,僅提供信息存儲服務。

相關閱讀更多精彩內容

友情鏈接更多精彩內容