多线程生产者和消费者例子
来源:互联网 发布:西德尼谢尔顿 知乎 编辑:程序博客网 时间:2024/05/16 05:13
/** * 多线程,生产者与消费者 * 使用多线程解决生产者和消费者问题,必须使用while循环和nitifyAll()。 * @author Again * */class ProductCustomerDemo {public static void main(String[] args) {Resource r=new Resource();Product p=new Product(r);Customer c=new Customer(r);Thread t1=new Thread(p);Thread t2=new Thread(p);Thread t3=new Thread(c);Thread t4=new Thread(c);t1.start();t2.start();t3.start();t4.start();}}class Resource{private String name;private int count=1;private boolean flag=false;/* * 生产者 */public synchronized void set(String name){while(flag){try {this.wait();} catch (InterruptedException e) {// TODO Auto-generated catch blocke.printStackTrace();}}this.name=name+"....."+count++;System.out.println(Thread.currentThread().getName()+"----生产者----"+this.name);flag=true;this.notifyAll();}/* * 消费者 */public synchronized void out(){while(!flag){try {this.wait();} catch (InterruptedException e) {// TODO Auto-generated catch blocke.printStackTrace();}}System.out.println(Thread.currentThread().getName()+"---------消费者---------"+this.name);flag=false;this.notifyAll();}}class Product implements Runnable{private Resource r;public Product(Resource r){this.r=r;}public void run() {while(true){r.set("商品");}}}class Customer implements Runnable{private Resource r;public Customer(Resource r){this.r=r;}public void run() {while(true){r.out();}}}
0 0
- 多线程生产者和消费者例子
- java 多线程生产者和消费者例子
- Java多线程生产者和消费者的例子
- 多线程--生产者消费者--简单例子
- <JAVA>多线程-生产者消费者例子
- 多线程生产者和消费者
- 多线程,生产者和消费者
- 多线程,生产者和消费者
- 多线程--生产者和消费者
- Java多线程之简单生产者和消费者例子
- 多线程模型:生产者和消费者
- 多线程案例:生产者和消费者
- c#多线程 生产者和消费者
- C#多线程------生产者和消费者
- 多线程,生产者和消费者原型
- C#多线程--生产者和消费者
- Java 多线程 生产者和消费者
- Java多线程-生产者和消费者
- [LeetCode]Validate Binary Search Tree
- swift备忘-1:String和数值类型转换
- F#学习资源
- F#学习之路(1)什么是函数式编程
- F#学习之路(2) 深刻理解函数(下)
- 多线程生产者和消费者例子
- opencv图像遍历方法速度对比
- F# 学习之路(3) 如何组织程序(上)
- F#学习之路(3) 如何组织程序(下)
- F#学习之路(4) 基本类型
- F# CTP 版本的发布带来了哪些变化
- F#学习之路(6)列表类型
- F#版本更新说明
- F#学习之路(7)集合类型