12_多線程

12_多線程java

wait():一旦執行此方法,當前線程就進入阻塞狀態,並釋放同步監視器(釋放鎖)。
notify():一旦執行此方法,就會喚醒被wait的一個線程。若是有多個線程被wait,就喚醒優先級高的那個。
notifyAll():一旦執行此方法,就會喚醒全部被wait的線程。多線程

說明:
1.wait(),notify(),notifyAll()三個方法必須使用在同步代碼塊或同步方法中。
2.wait(),notify(),notifyAll()三個方法的調用者必須是同步代碼塊或同步方法中的同一個同步監視器。不然,會出現IllegalMonitorStateException異常
3.wait(),notify(),notifyAll()三個方法是定義在java.lang.Object類中。this

關於同步方法的總結:
1. 同步方法仍然涉及到同步監視器,只是不須要咱們顯式的聲明。
2. 非靜態的同步方法,同步監視器是:this
    靜態的同步方法,同步監視器是:當前類自己線程

相關文章
相關標籤/搜索