Java實現生產者消費者的學習例項

2021-07-24 18:22:29 字數 893 閱讀 9765

package producerconsumer;

/** * 生產者(productor)將產品交給店員(clerk),而消費者(customer)從店員處取走產品,店員一次只能持有固定數量的產品(比如:20),

* 如果生產者試圖生產更多的產品,店員會叫生產者停一下,如果店中有空位放產品了再通知生產者繼續生產;

* 如果店中沒有產品了,店員會告訴消費者等一下,如果店中有產品了再通知消費者來取走產品

* */

//問題分析:

//1、是否涉及到多執行緒問題? 是,生產者、消費之

//2、是否涉及到共享資料? 是考慮執行緒安全問題

//3、此共享資料是誰?產品的數量

//4、是否涉及到執行緒的通訊? 是 存在這生成者和消費者的通訊

public class testprocucerconsumer

}class clerk catch (interruptedexception e)

}else }

public synchronized void consumeproduct() catch (interruptedexception e)

}else }}

class producer implements runnable

public void run() catch (interruptedexception e)

clerk.addproduct();

} }}class consumer implements runnable

public void run() catch (interruptedexception e)

clerk.consumeproduct();

} }}

java生產者消費者

題目 請用多執行緒實現乙個生產者類和乙個消費者類,生產者隨機生成20個字元,消費者將字元列印到控制台。class syncstackcatch interruptedexception e this.notify 通知其它執行緒把資料出棧 buffer index c 資料入棧 index 指標向上...

生產者消費者問題(java實現)

1 生產者 消費者模型 若容器容量為1 生產者執行緒 if a 1 a notify 消費者 if a 0 a notify 2 下面是乙個 實現 簡單的快取容量只有1,即 若容器中有乙個了,就不能再生產了 1 最基本的寫法 資源類 public class sample catch interru...

Java實現生產者消費者問題

生產者 消費者 producer consumer 問題,也稱作有界緩衝區 bounded buffer 問題,兩個程序共享乙個公共的固定大小的緩衝區。其中乙個是生產者,用於將訊息放入緩衝區 另外乙個是消費者,用於從緩衝區中取出訊息。問題出現在當緩衝區已經滿了,而此時生產者還想向其中放入乙個新的資料...