zoukankan      html  css  js  c++  java
  • 生产者消费者

    模拟 生产者生产产品  放到天猫    消费者去天猫消费

    Tmail

    public class Tmail {
    
        private  int count;
    
        public  final int MAX_COUNT = 10;
    
        public synchronized void push(){
            while (count >= MAX_COUNT) {
                try {
                    System.out.println(Thread.currentThread().getName() + "库存达到上线,生产者stop");
                    wait();
                } catch (InterruptedException e) {
                    e.printStackTrace();
                }
            }
                count++;
                System.out.println(Thread.currentThread().getName()+"生产者生产,当前库存为:"+count);
                notifyAll();
    
        }
        public synchronized void take(){
            while (count <= 0){
                try {
                    System.out.println(Thread.currentThread().getName()+"库存数量为零,消费者等待");
                    wait();
                }catch (InterruptedException e){
                    e.printStackTrace();
                }
            }
            count--;
            System.out.println(Thread.currentThread().getName()+"消费者消费,当前库存为:"+count);
            notifyAll();
        }
    
    }
    

      PushTarget

    public class PushTarget implements  Runnable {
    
         private Tmail tmail;
    
         public PushTarget(Tmail tmail){
             this.tmail=tmail;
         }
    
        public void run() {
            while (true) {
                tmail.push();
                try {
                    Thread.sleep(1000);
                }catch (InterruptedException e){
                    e.printStackTrace();
                }
    
            }
        }
    }
    

      TakeTarget

    public class TakeTarget implements  Runnable {
       private  Tmail tmail;
       public  TakeTarget(Tmail tmail){
           this.tmail = tmail;
       }
        public void run() {
            while (true) {
                tmail.take();
                try {
                    Thread.sleep(1000);
                }catch (InterruptedException e){
                    e.printStackTrace();
                }
            }
        }
    
    }
    

      Test

    public class Test {

    public static void main(String[] args){
    Tmail tmail = new Tmail();
    PushTarget p = new PushTarget(tmail);
    TakeTarget t = new TakeTarget(tmail);

    new Thread(p).start();
    new Thread(p).start();
    new Thread(p).start();
    new Thread(p).start();
    new Thread(p).start();

    new Thread(t).start();
    new Thread(t).start();
    new Thread(t).start();
    new Thread(t).start();
    new Thread(t).start();
    new Thread(t).start();
    new Thread(t).start();
    new Thread(t).start();

    }

    }
  • 相关阅读:
    团队项目简介及视频
    构建之法阅读笔记04
    软件工程结对作业02
    团队项目NABCD
    搜狗输入法人机交互设计的用户体验
    站立会议个人博客5(2016/4/23)
    站立会议个人博客4(2016/4/22)
    典型用户和用户场景描述
    站立会议个人博客3(2016/4/21)
    站立会议个人博客2(2016/4/20)
  • 原文地址:https://www.cnblogs.com/toov5/p/8888657.html
Copyright © 2011-2022 走看看