首页 > 编程语言 > 详细

【Java】生产者消费者(代码)

时间:2020-02-03 20:51:18      阅读:54      评论:0      收藏:0      [点我收藏+]

一个生产者一个消费者

class Goods {
    private String goodsName;
    private int count;
    public synchronized void set(String goodsName) throws InterruptedException{
        if(this.count > 0){
            System.out.println("还有库存,等待消费者");
            wait();
        }
        this.goodsName = goodsName;
        this.count = count+1;
        System.out.println("生产" + toString());
        notify();
    }
    public synchronized void get() throws InterruptedException{
        if(this.count == 0){
            System.out.println("商品卖完了");
            wait();
        }
        this.count = this.count - 1;
        System.out.println("消费" + toString());
        notify();
    }

    @Override
    public String toString() {
        return "Goods[goodsName=" + goodsName + ",count=" + count + "]";
    }
}

class Producer implements Runnable {
    private Goods goods;
    public Producer(Goods goods){
        super();
        this.goods = goods;
    }

    @Override
    public void run() {
        try {
            this.goods.set("奔驰一辆");
        } catch (InterruptedException e){
            e.printStackTrace();
        }
    }
}

class Consumer implements Runnable{
    private Goods goods;
    public Consumer(Goods goods){
        super();
        this.goods = goods;
    }

    @Override
    public void run() {
        try {
            this.goods.get();
        } catch (InterruptedException e){
            e.printStackTrace();
        }
    }
}

public class Hello {
    public static void main(String[] args) throws InterruptedException{
        Goods goods = new Goods();
        Thread produceThread = new Thread(new Producer(goods));
        Thread consumerThread = new Thread(new Consumer(goods));

        consumerThread.start();
        Thread.sleep(1000);
        produceThread.start();
    }
}

【Java】生产者消费者(代码)

原文:https://www.cnblogs.com/LampsAsarum/p/12257056.html

(0)
(0)
   
举报
评论 一句话评论(0
关于我们 - 联系我们 - 留言反馈 - 联系我们:wmxa8@hotmail.com
© 2014 bubuko.com 版权所有
打开技术之扣,分享程序人生!