永发信息网

java4.生产者消费者:有一个生产者对象,还有一个消费者对象生产者用来向篮子对象中

答案:2  悬赏:0  手机版
解决时间 2021-11-25 18:37
java4.生产者消费者:有一个生产者对象,还有一个消费者对象生产者用来向篮子对象中
最佳答案
import java.util.LinkedList; public class TestProductConm { public static class Storage {         // 仓库存储量         private final int MAX_SIZE = 一00;         // 仓库存储载体         private LinkedList list = new LinkedList();         // 产num产品         public void produce(int num) {             // 同步代码段             synchronized (list) {                 // 仓库剩余容量足                 while (list.size() + num > MAX_SIZE) {                     System.out.println("【要产产品数量】:" + num + "/t【库存量】:"                             + list.size() + "/t暂能执行产任务!");                     try {                         // 由于条件满足产阻塞                         list.wait();                     } catch (InterruptedException e) {                         e.printStackTrace();                     }                 }                 // 产条件满足情况产num产品                 for (int i = 一; i <= num; ++i) {                     list.add(new Object());                 }                 System.out.println("【已经产产品数】:" + num + "/t【现仓储量】:" + list.size());                 list.notifyAll();             }         }         // 消费num产品         public void consume(int num) {             // 同步代码段             synchronized (list) {                 // 仓库存储量足                 while (list.size() < num) {                     System.out.println("【要消费产品数量】:" + num + "/t【库存量】:"                             + list.size() + "/t暂能执行产任务!");                     try {                         // 由于条件满足消费阻塞                         list.wait();                     } catch (InterruptedException e) {                         e.printStackTrace();                     }                 }                 // 消费条件满足情况消费num产品                 for (int i = 一; i <= num; ++i) {                     list.remove();                 }                 System.out.println("【已经消费产品数】:" + num + "/t【现仓储量】:" + list.size());                 list.notifyAll();             }         }         // get/set         public LinkedList getList() {             return list;         }         public void setList(LinkedList list) {             this.list = list;         }         public int getMAX_SIZE() {             return MAX_SIZE;         }     } public static class Producer extends Thread {         // 每产产品数量         private int num;         // 所放置仓库         private Storage storage;         // 构造函数设置仓库         public Producer(Storage storage) {             this.storage = storage;         }         // 线程run函数         public void run() {             produce(num);         }         // 调用仓库Storage产函数         public void produce(int num) {             storage.produce(num);         }         // get/set         public int getNum() {             return num;         }         public void setNum(int num) {             this.num = num;         }         public Storage getStorage() {             return storage;         }         public void setStorage(Storage storage) {             this.storage = storage;         }     } public static class Consumer extends Thread {         // 每消费产品数量         private int num;         // 所放置仓库         private Storage storage;         // 构造函数设置仓库         public Consumer(Storage storage) {             this.storage = storage;         }         // 线程run函数         public void run() {             consume(num);         }         // 调用仓库Storage产函数         public void consume(int num) {             storage.consume(num);         }         // get/set         public int getNum() {             return num;         }         public void setNum(int num) {             this.num = num;         }         public Storage getStorage() {             return storage;         }         public void setStorage(Storage storage) {             this.storage = storage;         }     }     public static void main(String[] args) {         // 仓库象         Storage storage = new Storage();         // 产者象         Producer p一 = new Producer(storage);         Producer p二 = new Producer(storage);         Producer p三 = new Producer(storage);         Producer p四 = new Producer(storage);         Producer p5 = new Producer(storage);         Producer p陆 = new Producer(storage);         Producer p漆 = new Producer(storage);         // 消费者象         Consumer c一 = new Consumer(storage);         Consumer c二 = new Consumer(storage);         Consumer c三 = new Consumer(storage);         // 设置产者产品产数量         p一.setNum(一0);         p二.setNum(一0);         p三.setNum(一0);         p四.setNum(一0);         p5.setNum(一0);         p陆.setNum(一0);         p漆.setNum(吧0);         // 设置消费者产品消费数量         c一.setNum(50);         c二.setNum(二0);         c三.setNum(三0);         // 线程始执行         c一.start();         c二.start();         c三.start();         p一.start();         p二.start();         p三.start();         p四.start();         p5.start();         p陆.start();         p漆.start();     }
全部回答
http://blog.csdn.net/ghuil/article/details/41044257你参考下
我要举报
如以上问答信息为低俗、色情、不良、暴力、侵权、涉及违法等信息,可以点下面链接进行举报!
大家都在看
尽日寻春不见春,芒鞋踏遍陇头云 与惜春小礼
快贷贷款审核总是不过,怎么才好过
娜纱网咖地址在什么地方,想过去办事,
混凝土路面,C30,含30cm的路基,1平米造价是
精锐教育(崇安学习中心)地址在什么地方,我要
商家使用桥谷掌柜能为自己的店铺带来哪些良好
真正的佛教有没有会让人喝符水的(就是用符烧
联想K5 note配置好不好
Aj5这种鞋绣着23和没绣的有什么区别?
,八角,小茴香,公丁香1,山奈,桂皮,甘草
联想小新310可以什么型号的内存条呢?
当有村民私自占用集体土地建房怎么处理
兴业银行信用卡从上海寄到金华需要几天的时间
目前还有20万的信托吗
为什么说在中国无法实行资本主义? 最近准备
推荐资讯
在佛山百花纹个眼线多少钱,,上下的都纹
我是五菱货运板,过年能免费使用高速么
绊脚石和垫脚石分别是什么意思
伟大的网友们 从网上买了一车票 T398 深圳到
求问!大连信风海运这家公司怎么样?个人发展
菲仕特健身俱乐部(南外店)地址在哪,我要去那
粉白龙猫和纯白龙猫哪个贵?
我的套餐一直以来都是用18元的,现在为什么变
我刚才把东西落在长春267路车上了 我还怎么
小升初模拟试卷语文和答案
停车场(出入口)(和谐路与玉泉街交叉口东200米
裸辞3个月了,工作还没着落,迷茫,不安,我
正方形一边上任一点到这个正方形两条对角线的
阴历怎么看 ?