1) wait、 notify、 notifyall
這單個方法是屬於object類的方法
wait: 導致當前的執行緒等待,直到其他執行緒呼叫此物件的notify()方法或notifyall()方法
notify: 喚醒在此物件監視器等待的乙個執行緒
notifyall: 喚醒在此物件監視器上等待的所有執行緒
2) demo
public class testwait3 catch (interruptedexception e)
system.out.println("t1 end");}}
};thread t2 = new thread() catch (interruptedexception e)
obj.notify();
try catch (interruptedexception e)
system.out.println("t2 end");}}
};t1.start();
t2.start();
}public void m()
}
t2.notify()之後會釋放鎖,但是會繼續執行t2後,才會執行得到鎖的t1;wait會讓出cpu,而notify不會讓,notify重在通知使用obj的物件「用完了」,wait重在通知其他同乙個obj的執行緒「我暫時不用了」並且讓出cpu 多執行緒 執行緒互動
在實際功能中,會存在一些執行緒互動的情況。比如 乙個執行緒執行某個操作,當操作的物件到達某種狀態時,會等待其他執行緒來執行。下面 的功能是,乙個執行緒對乙個數字執行減少方法,當減到1時,等待增加執行緒操作。public class thread interactive extends thread ...
010 多執行緒互動
1 使用join執行緒間排隊 2 使用wait notify 進行執行緒間互動 3 使用 countdownlatch進行執行緒互動等待執行緒id 11正在等待其他執行緒 等待執行緒id 11汽車 完成執行緒id 21正在工作 執行緒id 16正在工作 執行緒id 17正在工作 執行緒id 13正在...
多執行緒的互動
當多個執行緒同時共享訪問同一資料時,每個執行緒都嘗試操作該資料,從而導致改資料被破壞,這種現象稱為爭用條件。同步的實現 wait notify notifyall 當乙個執行緒要訪問共享資源,首先要拿到鎖後進入臨界區,如果發現某些條件不符合,呼叫wait方法釋放鎖資源,執行緒進入鎖物件上的wait ...