生产者每秒可以生产一样产品 (product),
消费者每秒消费 0, 1, 2..., m 样产品 (order)
若生产者来不及生产, 消费者必须等待
消费者一次买完所需, 除非产品不够 (process)
ex1: 产品 4, 消费 2 => 产品 2
ex2: T1 消费 2
T2 产品 1, 完成 1
T2 产品 1, 完成 1
T1 消费 1 (新的)
T2 产品 1, 完成 1 (处理新的 T1)
我需要打印前 n 秒结果
主要程式1 Clerk
private int product = 0;
private int order = 0;
private int process = 0;
// Manufacture
public synchronized void setProduct() {
product++;
process = Math.min(product, order);
order -= process;
System.out.printf("%d car available, %d requests processed!\n",
product, process);
product -= process;
if (order == 0) {
notify();
}
n