美文网首页
多线程之生产者与消费者

多线程之生产者与消费者

作者: 是我真的是我 | 来源:发表于2019-11-05 23:20 被阅读0次

Box

public class Box {
    private int apple = 0;

    public static void main(String[] args) {
        Box box = new Box();
        Thread product = new Thread(new Product(box), "生产者1");
        Thread consumer = new Thread(new Consumer(box), "消费者1");
        Thread consumer2 = new Thread(new Consumer(box), "消费者2");
        product.start();
        consumer.start();
        consumer2.start();
    }

    public synchronized void add(){
        while (apple == 5){
            try {
                wait();
            }catch (Exception e){

            }

        }
        apple ++;
        System.out.println("生产苹果成功");
        notifyAll();
    }

    public synchronized void put(){
        while (apple == 0){
            try {
                wait();
            }catch (Exception e){

            }
        }
        apple --;
        notifyAll();
    }
}

Product

public class Product implements Runnable {
    Box box;

    public Product(Box b){
        box = b;
    }

    @Override
    public void run(){
        for (int i=0; i<10; i++){
            try {
                box.add();
                int rt = (int)(Math.random() * 100);
                Thread.sleep(rt + 100);
            }catch (Exception e){

            }

        }

    }
}

Consumer

package Thread;

public class Consumer implements Runnable {
    Box box;

    public Consumer(Box b){
        box = b;
    }

    @Override
    public void run(){
        for (int i=0; i<5; i++){
            try {
                box.put();
                System.out.println(Thread.currentThread().getName() + "吃了一个苹果");
                int rt = (int)(Math.random() * 100);
                Thread.sleep(rt + 400);
            }catch (Exception e){

            }
        }

    }
}
运行结果展示

相关文章

  • 多进程、多线程、生成器实现生产者消费者模型

    多线程实现 多线程实现生产者消费者模型的逻辑十分简单,生产者与消费者之间通过队列来进行通讯,所以生产者不用等待消费...

  • 生产者-消费者 模型

    生产者与消费者基本程序模型 在多线程开发过程之中最为著名的案例就是生产者与消费者操作,该操作的主要流程如下:生产者...

  • Java中生产者与消费者模式

    java生产者与消费者模式 生产者和消费者模式是我们在学习多线程中很经典的一个模式,它主要分为生产者和消费者,分别...

  • 2019-04-24

    基于生产者与消费者的多线程Python实现 生产者生产,消费者消费,都是针对二者共同的钱包,生产者生产的钱放入钱包...

  • 生产者和消费者的Java实现方式

    引言 生产者与消费者问题是典型的多线程同步问题。生产者与消费者分别是两个角色,需要维护一个公共队列,生产者向队列中...

  • wait/notify实现生产者消费者(6)

    生产者消费者模型 生产者消费者模型是一个典型的多线程问题,涉及生产者、消费者、产品仓库。生产者生产的产品放入仓库中...

  • 并行模式之生产者消费者

    原理 生产者-消费者模式是一个经典的多线程设计模式,它为多线程的协作提供了良好的解决方案。在生产者-消费者模式中,...

  • #30天专注成长计划#day 16 java 多线程设计模式-生

    1.什么是生产者消费者模式?### 生产者-消费者模式是一个经典的多线程设计模式。它为多线程间的协作提供了良好的解...

  • Java生产者和消费者实现

    0. 前言 生产者消费者是考察多线程的常见问题。最近尝试手写生产者和消费者时,发现这个问题并不止是考察多线程,还可...

  • 2020-07-09生产者与消费者模式

    生产者消费者模式概述 生产者消费者模式是一个十分经典的多线程协作 的模式,所谓生产者消费者模式,实际是主要包含了两...

网友评论

      本文标题:多线程之生产者与消费者

      本文链接:https://www.haomeiwen.com/subject/dllybctx.html