package com.yuxinyicheng.test2;/*
*生產者和消費者的問題:
*生產者將產品交給店員,而消費者從店員處取走產品,
*店員一次只能有固定數量的產品(比如:
20個)
*如果生產者試圖生產更多的產品,店員會叫生產者停一下,
*如果店員中有空位放產品,再通知生產者繼續生產;
*如果店中沒有產品,店員會告訴消費者等一下,
*如果店中有產品再通知消費者取走產品。*
* * */
class clerk catch (interruptedexception e) catch (interruptedexception e) {
// todo
自動生成的 catch
塊e.printstacktrace();
else{
system.out.println(thread.currentthread().getname()+"消費了
"+product+"個產品");
product--;
notifyall();
class productor implements runnable{//生產者
clerk clerk ;
public productor(clerk clerk ){
this.clerk=clerk;
@override
public
void run() {
clerk.addproduct();
class consumer implements runnable{
clerk clerk ;
public consumer(clerk clerk ){
this.clerk=clerk;
@override
public
void run() {
clerk.consumeproduct();
public
class testproduceconsume {
public
static
void main(string args) {
// todo
自動生成的方法存根
clerk clerk = new clerk();
productor productor=new productor(clerk);
consumer consumer=new consumer(clerk);
thread t1=new thread(productor);
thread t2=new thread(consumer);
t1.setname("生產者");
t2.setname("消費者");
t1.start();
t2.start();
生產者消費者 生產者與消費者模式
一 什麼是生產者與消費者模式 其實生產者與消費者模式就是乙個多執行緒併發協作的模式,在這個模式中呢,一部分執行緒被用於去生產資料,另一部分執行緒去處理資料,於是便有了形象的生產者與消費者了。而為了更好的優化生產者與消費者的關係,便設立乙個緩衝區,也就相當於乙個資料倉儲,當生產者生產資料時鎖住倉庫,不...
生產者和消費者
package demo.one public class producerconsumerdemo 資源 class resource catch interruptedexception e this.name name count system.out.println thread.curre...
生產者和消費者
package thread 產品倉庫類 author wxg1022 public class productlist catch exception e system.out.println 我來生產1個!注意 notifyall 以後,並沒有退出,而是繼續執行直到完成 productlist ...