Java消費者生產者問題

2021-09-13 11:48:21 字數 1143 閱讀 3262

/**

* 乙個執行緒作為生產者,乙個執行緒作為消費者。生產者和消費者在同時執行。

* 生產者每生產一次消費者就消費一次。生產和消費的數量用隨機數來表示。

* 要求:生產者的數量和上次消費後的剩餘數量和不大於1000.

* sleep:可以指定休眠的時間,如果沒有其他操作,那麼到點自然醒。

* 如果sleep有鎖資源,那麼不釋放**執行權,sleep是thread的類方法

* wait:可以指定也可以不指定休眠時間。

* 如果有所資源,那麼釋放鎖,也釋放執行權。

* 是屬於object的方法。使用等待喚醒機制是,和notify方法配合使用

* 呼叫等待喚醒內容鎖資源必須一致

*/public class demo

}class product catch (interruptedexception e)

} int max=1000-count;

int num=(int)(math.random()*(max+1));

count+=num;

system.out.println(thread.currentthread().getname()+":"+num+"緩衝池中剩餘資源:"+count);

flag=false;

notifyall();

} public synchronized void remove() catch (interruptedexception e)

} int num=(int)(math.random()*(count+1));

count-=num;

system.out.println(thread.currentthread().getname()+":"+num+"緩衝池中剩餘資源:"+count);

flag=true;

notifyall(); }}

class consumer implements runnable

@override

public void run() }

}class producer implements runnable

@override

public void run() }

}

java生產者消費者

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

生產者消費者問題

public class producer consumer class godown public godown int num public synchronized void produce int n catch interruptedexception e curr num n syste...

生產者 消費者問題

在學習程序互斥中,有個著名的問題 生產者 消費者問題。這個問題是乙個標準的 著名的同時性程式設計問題的集合 乙個有限緩衝區和兩類執行緒,它們是生產者和消費者,生產者把產品放入緩衝區,相反消費者便是從緩衝區中拿走產品。生產者在緩衝區滿時必須等待,直到緩衝區有空間才繼續生產。消費者在緩衝區空時必 須等待...