[color=olive][b]「生產者-消費者」問題的含義是,系統中有很多生產者和消費者併發工作生產者負責生產資源,消費者消耗資源。當消費者消費資源時,如果資源不足,則需要等待,反之當生產者生產資源時,若資源已滿,則也需要等待。另外同一時刻只能有乙個生產者或消費者進行操作。[/b][/color]
//麵包容器(資源)
class breadcontainer
// 有參構造器
public breadcontainer(int num)
// 製作麵包的同步方法
public synchronized void producebread(int producenum, string producername) catch (exception e)
}// 滿足條件後,生產者生產麵包,重新整理數量
num = num + producenum;
system.out.println(producername + "生產了" + producenum + "個,現在有" + num
+ "個。");
// 喚醒資源等待池中的所有執行緒
notifyall();
}public synchronized void consumebread(int consumenum, string consumername) catch (exception e)
}// 數量充足,消費麵包,重新整理數量
num = num - consumenum;
system.out.println(consumername + "消費了" + consumenum + "個,現在還剩下" + num
+ "個");
// 喚醒資源等待池中的所有執行緒
this.notifyall();}}
// 生產者類
class producer extends thread
// 有參構造器
public producer(int producenum, breadcontainer bc, string producername)
// 生產者的工作方法
public void run()
}// 消費者類
class consumer extends thread
// 有參構造器
public consumer(int consumenum, breadcontainer bc, string consumername)
// 消費者的行為方法
public void run()
}public class sample16_9
}
java生產者消費者
題目 請用多執行緒實現乙個生產者類和乙個消費者類,生產者隨機生成20個字元,消費者將字元列印到控制台。class syncstackcatch interruptedexception e this.notify 通知其它執行緒把資料出棧 buffer index c 資料入棧 index 指標向上...
生產者和消費者案例
public final void wait throws interruptedexception 丟擲 illegalmonitorstateexception 如果當前執行緒不是此物件監視器的所有者。interruptedexception 如果在當前執行緒等待通知之前或者正在等待通知時,任何...
生產者 消費者案例(1)
多執行緒開發中經典的案例。生產者 消費者案例 package com.xiaofeng.example 生產者 消費者案例 author xiaofeng1015 public class theaddemo5 class producter implements runnable override...