Object.wait()與Object.notify()的用法

wait、notify和notifyAll方法是Object類的final native方法。因此這些方法不能被子類重寫spa

void notifyAll()

解除全部那些在該對象上調用wait方法的線程的阻塞狀態。該方法只能在同步方法同步塊內部調用。若是當前線程不是鎖的持有者,該方法拋出一個IllegalMonitorStateException異常。線程

void notify()

隨機選擇一個在該對象上調用wait方法的線程,解除其阻塞狀態。該方法只能在同步方法同步塊內部調用。若是當前線程不是鎖的持有者,該方法拋出一個IllegalMonitorStateException異常。對象

void wait()

致使線程進入等待狀態,直到它被其餘線程經過notify()或者notifyAll喚醒。該方法只能在同步方法中調用。若是當前線程不是鎖的持有者,該方法拋出一個IllegalMonitorStateException異常。同步

void wait(long millis)和void wait(long millis,int nanos)

致使線程進入等待狀態直到它被通知或者通過指定的時間。這些方法只能在同步方法中調用。若是當前線程不是鎖的持有者,該方法拋出一個IllegalMonitorStateException異常。it

相關文章
相關標籤/搜索