demo生产与消费

Posted

tags:

篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了demo生产与消费相关的知识,希望对你有一定的参考价值。

生产与消费问题描述:

  我们需要先生产商品再进行消费。当我们的生产商生产完产品了,通知我们消费者我们有产品了,可以来消费了。消费者就去消费,当消费完了,就要通知我们的生产商去生产产品。

生产与消费问题实现:

  利用线程中的wait()与notify()之间的通讯来实现。wait()可以释放锁的、notify()是不释放锁的。

demo:

package com.communication;

/**
 * 生产与消费问题
 * @author jingxuan
 *
 */
public class Produce {

    //
    private final Object lock=new Object();
    
    //作为是否生产完成标识
    private boolean sign=false;
    
    //生产者
    public void product(){
        
        synchronized (lock) {
            while(!sign){
                //标识消费完了,该生产了。
                sign=true;
                try {
                    System.out.println("生产完了,赶紧来消费");
                    lock.wait();
                } catch (InterruptedException e) {
                    // TODO Auto-generated catch block
                    e.printStackTrace();
                }
            }
            
            lock.notify();
        }
    }
    
    //消费者
    public void customer(){
        
        synchronized (lock) {
            
            while(sign){
                //表示有产品了
                sign=false;
                try {
                    System.out.println("消费完了,赶紧生产");
                    lock.wait();
                } catch (InterruptedException e) {
                    // TODO Auto-generated catch block
                    e.printStackTrace();
                }
            }
            
            lock.notify();
        }
    }
    
    public static void main(String[] args) {
        
        final Produce p=new Produce();
        
        while(true){
            new Thread( new Runnable() {
                
                @Override
                public void run() {
                    
                        p.product();

                }
            }).start();
            
            new Thread( new Runnable() {
                
                @Override
                public void run() {
                    
                        p.customer();

                }
            }).start();
        }

    }
    
}

 

以上是关于demo生产与消费的主要内容,如果未能解决你的问题,请参考以下文章

生产者与消费者--demo1---bai

Kafka使用总结与生产消费Demo实现

生产者与消费者---demo2---boke

线程通信Demo

生产者与消费者案例

生产都消费者模式的一个demo,消费者设置缓存