题目描述如下:
有一家生产奶酪的厂家,每天需要生产100000份奶酪卖给超市,通过一辆送货车发货,送货车辆每次送100份。
厂家有一个容量为1000份的冷库,用于奶酪保鲜,生产的奶酪需要先存放在冷库,运输车辆从冷库取货。
厂家有三条生产线,分别是牛奶供应生产线,发酵剂制作生产线,奶酪生产线。生产每份奶酪需要2份牛奶和1份发酵剂。
请设计生产系统。
根据以下要求,我们可以考虑这么几个方面
牛奶生产和发酵剂生产作为生产者,奶酪生产作为消费者
奶酪生产作为生产者,货车发车作为消费者
牛奶存储和发酵剂存储以及奶酪存储,使用3个阻塞队列暂存
货车装车从奶酪队列里每取一百次发一次车
一共4个生产者,2个消费者,3个阻塞队列
下面是代码实现
import com.google.common.util.concurrent.ThreadFactoryBuilder;
import java.util.concurrent.*;
import java.util.concurrent.atomic.AtomicInteger;
/**
* 生产奶酪
*
* @author since
* @date 2020-11-02 16:04
**/
public class Cheese {
/**
* 每天生产奶酪的总量
*/
private static final Integer TOTAL_PRODUCTION = 100000;
/**
* 牛奶的数量-200000/天
*/
private static final AtomicInteger MILK_SIZE = new AtomicInteger(0);
/**
* 发酵剂的数量-100000/天
*/
private static final AtomicInteger STARTER_SIZE = new AtomicInteger(0);
/**
* 奶酪的数量-100000/天
*/
private static final AtomicInteger CHEESE_SIZE = new AtomicInteger(0);
/**
* 取奶酪的次数
*/
private static final AtomicInteger CHEESE_TAKE_TIMES = new AtomicInteger(