Notify與Wait方法使用(一)

2021-08-17 21:57:59 字數 683 閱讀 8196

一、基本使用

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 ...