天天看點

生産者與消費者之間的線程通信案例

Object提供了三個方法wait(), notify(), notifyAll()線上程之間進行通信,以此來解決線程間執行順序等問題。

wait():釋放目前線程的同步監視控制器,并讓目前線程進入阻塞狀态,直到别的線程發出notify将該線程喚醒。

notify():喚醒在等待控制螢幕的其中一個線程(随機)。隻有目前線程釋放了同步螢幕鎖(調用wait)之後,被喚醒的線程才有機會執行。

notifyAll():與上面notify的差別是同時喚醒多個等待線程。

這裡補一張思想草圖:

生産者與消費者之間的線程通信案例

定義一個倉庫類、生産者類、消費者類、定義一個測試類來實作線程通信

倉庫類

消費者類

生産者類

測試類