1. 程式人生 > >對象的notify方法的含義和對象鎖釋放的三種情況

對象的notify方法的含義和對象鎖釋放的三種情況

代碼塊 程序 退出 ont nbsp pos 狀態 線程等待 content

1,notify的含義 (1)notify一次只隨機通知一個線程進行喚醒 (2)在執行了notify方法之後,當前線程不會馬上釋放該對象鎖,呈wait狀態的線程也不能馬上獲得該對象鎖, 要等到執行notify方法的線程將程序執行完 ,也就是退出sychronized代碼塊後,當前線程才會釋放鎖, 而呈wait狀態所在的線程才可以獲取該對象鎖。 2,對象鎖釋放的三種情況
序號 場景
1 執行完同步代碼塊就會釋放對象的鎖
2 在執行同步代碼塊的過程中,遇到異常而導致線程終止,鎖也會被釋放
3 在執行同步代碼塊的過程中,執行了鎖所屬對象的wait方法,這個線程會釋放對象鎖,而此線程對象會進入線程等待池中,等待被喚醒

對象的notify方法的含義和對象鎖釋放的三種情況