一、基本使用
public
class
notifyandwait
}class
mythread
extends
thread
@override
public
void run() catch (interruptedexception e)
system.out.println(thread.currentthread().getname()+"執行完畢");}}
}class
mythread1
extends
thread
@override
public
void run() catch (exception e)
system.out.println(thread.currentthread().getname()+"執行完畢");}}
}
執行結果:
1即將wait
2開始執行
即將喚醒等待者
2執行完畢
1執行完畢
wait和notify方法都必須在 鎖中執行,否則會報錯。
notify所在的同步塊執行完了才會釋放鎖持有的鎖,然後其它等待中的程式競爭鎖。
關於wait與notify的使用
wait可以把某個拿到鎖的執行緒冬眠,並釋放鎖。其他執行緒獲取鎖,完成工作後,可以通過notify喚醒其他需要這個鎖的冬眠程序。冬眠程序醒了後,嘗試獲取鎖,得到鎖後繼續工作。好比一群熊圍著乙個碗,要吃飯。1 看到碗裡沒有飯,就放開碗去睡覺 wait 以免影響飼養員放食物。碗只能乙個動物使用 乙個帶鎖...
Java中wait 與notify 方法的使用
wait notify 方法介紹 1 wait 方法 讓當前執行緒 持有鎖的執行緒 處於等待 阻塞 的狀態,並且釋放它持有的鎖。該執行緒將處於阻塞狀態,直到其它執行緒呼叫notify 或者notifyall 方法喚醒,執行緒進入就緒狀態。2 wait long 讓當前執行緒 持有鎖的執行緒 處於等待...
wait 方法及notify()練習題
1.寫兩個執行緒,乙個執行緒列印 1 52,另乙個執行緒列印a z,列印順序是12a34b.5152z class printnumber implements runnable override public void run catch interruptedexception e class ...