package com.lovecoding.day14.thread04;

public class DiningHome {

    //有家餐馆的取餐口比较小，只能放10份快餐，厨师做完快餐放在取餐口的工作台上，
    //服务员从这个工作台取出快餐给顾客。现在有1个厨师和1个服务员。
    public static int count = 0;

    //厨师 生成快餐
    public synchronized  void put(){
        //只能放10份快餐
        while (count >= 10){
            try {
                //等待
                wait(); //厨师1 等待 通知厨师2 等待  通知  厨师1 继续运行 判断失效
            } catch (InterruptedException e) {
                e.printStackTrace();
            }
        }
        //生产
        count++;
        System.out.println(Thread.currentThread().getName()+"-生产:"+count+"份");

        //通知 所有
        notifyAll();
    }

    //服务员取餐
    public synchronized  void take(){
        //只能取到0
        while (count <= 0){ //校验1次 重复校验 改变 if 为 while
            try {
                //等待
                wait();
            } catch (InterruptedException e) {
                e.printStackTrace();
            }
        }
        //消费
        count--;
        System.out.println(Thread.currentThread().getName()+"-消费:"+count+"份");

        //通知 所有
        notifyAll();
    }

}
