java的notify方法爲什麼也要同步

notify():喚醒一個處於等待狀態的線程,注意的是在調用此方法的時候,並不能確切的喚醒某一個等待狀態的線程,而是由JVM確定喚醒哪個線程,而且不是按優先級。notify()方法和wait()方法的基本思想是給方法或代碼塊提供一種相互通信的方式,而這些方法或者代碼塊同步於某個特定對象。代碼塊可以調用wait()方法來將自身的操作掛起,直到同一個對象上的其他同步方法或同步代碼塊以某種方式將其改變,並調用notfiy()方法來通知此代碼塊改變已經完成。一個線程一般會因爲它所同步的對象的某個屬性沒有設置,或者某個條件沒有滿足而調用wait()方法,這些由另一個線程的動作決定。最簡單的情況可能是資源因爲正被另一個線程修改而繁忙,還有其他的可能情況。
發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章