生產者消費者
生產者消費者
生產者執行緒,消費者執行緒
共享資料
Object類的等待和喚醒方法
void wait()導致當前執行緒等待,直到另一個賢臣呼叫該物件的notify()方法或notifyAll()方法
void notify()喚醒正在等待物件監視器的單個執行緒
void notifyAll()喚醒正在等待物件監視器的所有執行緒
包含的類
奶箱類(Box):定義一個成員變數,表示第幾瓶奶,提供儲存牛奶和獲取牛奶的操作
生產者類(Produccer):實現Runnable介面,重寫run()方法,呼叫儲存牛奶的操作
消費者類(Customer):實現Runnable介面,重寫run()方法,呼叫獲取牛奶的操作
測試類(BoxDemo):裡面有main方法,建立奶箱物件,把奶箱物件作為構造方法引數傳遞,在這個類中呼叫儲存牛奶的方法;建立消費者物件,奶箱物件作為構造方法引數傳遞;建立兩個執行緒物件,分別把生產者物件和消費者物件作為構造方法引數傳遞;啟動執行緒
生產牛奶操作
如果有牛奶等待消費,定義牛奶的狀態
如果沒有牛奶生產牛奶
生產牛奶完畢後,修改奶箱狀態
消費牛奶的操作
如果沒有牛奶,等待生產
如果有牛奶,就消費牛奶
消費完畢後,修改奶箱狀態
wait()需要使用同步關鍵字
喚醒其他等待的執行緒:notifyAll()操作
相關文章
- 生產者消費者模型模型
- 生產者消費者模式模式
- python 生產者消費者模式Python模式
- 生產消費者模式模式
- ActiveMQ 生產者和消費者demoMQ
- 九、生產者與消費者模式模式
- 生產者與消費者問題
- linux 生產者與消費者問題Linux
- Java實現生產者和消費者Java
- 生產者與消費者之Android audioAndroid
- 新手練習-消費者生產者模型模型
- java實現生產者消費者問題Java
- 阻塞佇列和生產者-消費者模式佇列模式
- 讀者寫者與生產者消費者應用場景
- java編寫生產者/消費者模式的程式。Java模式
- Qt基於QSemaphore的生產者消費者模型QT模型
- Java多執行緒——生產者消費者示例Java執行緒
- python中多程式消費者生產者問題Python
- 使用BlockQueue實現生產者和消費者模式BloC模式
- 使用Disruptor實現生產者和消費者模型模型
- 鎖,threading local,以及生產者和消費者模型thread模型
- 併發設計模式---生產者/消費者模式設計模式
- 「Kafka應用」PHP實現生產者與消費者KafkaPHP
- PHP操作Beanstalkd佇列(2)生產者與消費者PHPBean佇列
- golang 併發程式設計之生產者消費者Golang程式設計
- 生產者消費者問題-C++程式碼實現C++
- 分享一個生產者-消費者的真實場景
- 插曲:Kafka的生產者案例和消費者原理解析Kafka
- 作業系統—生產者消費者問題詳解作業系統
- Python-多執行緒及生產者與消費者Python執行緒
- C++ condition_variable 實現生產者消費者模型C++模型
- 使用wait()與notifyAll()實現生產者與消費者模式AI模式
- SpringBoot整合Kafka(生產者和消費者都是SpringBoot服務)Spring BootKafka
- python中多執行緒消費者生產者問題Python執行緒
- 多生產者-消費者中假死現象的處理
- python執行緒通訊與生產者消費者模式Python執行緒模式
- 生產者消費者模式,以及基於BlockingQueue的快速實現模式BloC
- python多執行緒+生產者和消費者模型+queue使用Python執行緒模型