生产者和消费者问题
来源:互联网 发布:淘宝店铺招牌是什么 编辑:程序博客网 时间:2024/06/02 04:14
生产者和消费者同时进行,但消费者必须等待生产者生产出了产品才能进行消费。所以当消费者需要消费的物资为不足时,需要等待,等到生产者生产出了该产品在唤醒消费者的等待机制。
import java.util.*;public class Producer implements Runnable{public List<Integer> list=null;public Producer(List list){this.list=list;}public void run(){int i=0;//生产十个while(i<10){synchronized(list){list.add(++i);System.out.println("生产出了:"+i);list.notify();}}}}
import java.util.List;public class Customer extends Thread{private List<Integer> list=null;public Customer(List list){this.list=list;}public void run(){int i=0;while(i!=10)synchronized(list){if(list.size()==0){try {list.wait();} catch (InterruptedException e) {e.printStackTrace();}}Integer temp=list.get(list.size()-1);System.out.println("消费:"+temp);list.remove(temp);}}}
import java.util.ArrayList;import java.util.List;public class Test {public static void main(String[] args){List<Integer> list=new ArrayList<Integer>();Producer p=new Producer(list);Thread t=new Thread(p);//实现了Runnable接口Customer c=new Customer(list);System.out.println("开始:");c.start();t.start();}}
测试结果:
开始:生产出了:1
生产出了:2
生产出了:3
生产出了:4
生产出了:5
生产出了:6
生产出了:7
生产出了:8
消费:8
消费:7
生产出了:9
生产出了:10
消费:10
消费:9
消费:6
消费:5
消费:4
消费:3
消费:2
消费:1
0 0
- 消费者和生产者问题
- 生产者和消费者问题
- 生产者和消费者问题
- 生产者和消费者问题
- 消费者和生产者问题
- 生产者和消费者问题
- 生产者和消费者问题
- 生产者和消费者问题
- 生产者和消费者问题
- 生产者和消费者问题
- 生产者和消费者问题
- 生产者和消费者问题
- 生产者和消费者问题
- 生产者和消费者问题
- 生产者和消费者问题
- 生产者和消费者问题
- 生产者和消费者问题
- 生产者和消费者问题
- Java初学笔记
- 获取 E盘下所有文件的文件名;关于 File 对象的属性;关于 FileWriter 对象的属性;
- 二叉搜索树BST的C++实现
- 长度为n的数组,取其中k个,要求和为sum,求有多少种取法
- 粒子系统
- 生产者和消费者问题
- 浮点数在内存中的存储方式
- Activity的生命周期和启动模式
- “玲珑杯”ACM比赛 Round #4 G -- See car
- 集合框架
- linux c++ 高并发tcp服务器架构
- matlab_rand生成随机数
- maven 添加第三方依赖
- 基于C#分步式聊天系统的在线视频直播系统设计