關於wait與notify的使用

2022-09-05 17:21:06 字數 325 閱讀 6531

wait可以把某個拿到鎖的執行緒冬眠,並釋放鎖。

其他執行緒獲取鎖,完成工作後,可以通過notify喚醒其他需要這個鎖的冬眠程序。

冬眠程序醒了後,嘗試獲取鎖,得到鎖後繼續工作。

好比一群熊圍著乙個碗,要吃飯。

1)看到碗裡沒有飯,就放開碗去睡覺(wait)。以免影響飼養員放食物。碗只能乙個動物使用(乙個帶鎖的碗)。

2)飼養員放好食物後,可以搖鈴鐺(notifyall),叫醒所有熊,來吃飯。

注意:因為有多個熊,乙個熊醒了拿到碗後,可能這個碗的食物之前被另外乙個熊吃掉了。所有1)過程是乙個while判斷,不能用if。看不到食物,繼續睡覺(wait)

Java中wait 與notify 方法的使用

wait notify 方法介紹 1 wait 方法 讓當前執行緒 持有鎖的執行緒 處於等待 阻塞 的狀態,並且釋放它持有的鎖。該執行緒將處於阻塞狀態,直到其它執行緒呼叫notify 或者notifyall 方法喚醒,執行緒進入就緒狀態。2 wait long 讓當前執行緒 持有鎖的執行緒 處於等待...

Notify與Wait方法使用(一)

一 基本使用 public class notifyandwait class mythread extends thread override public void run catch interruptedexception e system.out.println thread.curren...

執行緒間的通訊之wait和notify的使用

wait和notify需要和synchronized一起使用,即需要先獲得鎖 public class test catch interruptedexception e log.debug 其它 start new thread catch interruptedexception e log.d...