java之生产者和消费者问题

前端之家收集整理的这篇文章主要介绍了java之生产者和消费者问题前端之家小编觉得挺不错的,现在分享给大家,也给大家做个参考。
package testThread;

public class Test3 {
    static void main(String[] args) {
        Clerk c = new Clerk();
        //消费时不生产,生产时不消费
        生产者
        new Thread( Runnable() {    
            @Override
             run() {
                 TODO Auto-generated method stub
                synchronized (c) {
                    无限生产
                    while(true) {
                        if(c.productNum == 0) {
                            开始生产
                            System.out.println("产品为0,开始生产");
                            while(c.productNum<4) {
                                c.productNum++;
                                System.产品库存:"+c.productNum);
                            }
                            System.产品数为:"+c.productNum+,结束生产唤醒消费者
                            c.notify();
                        }else {
                            try {
                                生产者等待
                                c.wait();
                            } catch (InterruptedException e) {
                                 TODO Auto-generated catch block
                                e.printStackTrace();
                            }
                        }
                    }
                }
                
            }
        },生产者).start();
        消费者
        ) {
                            System.库存为4,开始消费while(c.productNum>) {
                                c.productNum--,结束消费唤醒生产者
消费者等待
消费者).start();
    }
}
 Clerk{
    int productNum = ;
}

部分输出

产品为0,开始生产
产品库存:1
产品库存:2
产品库存:3
产品库存:4
产品数为:4,结束生产
库存为4,开始消费
产品库存:3
产品库存:2
产品库存:1
产品库存:0
产品数为:0,结束消费
产品为0,开始生产
产品库存:1
产品库存:2
产品库存:3
产品库存:4
产品数为:4,结束生产

猜你在找的Java相关文章