我有4个班级 - 制作人,消费者,商店,主要。
尝试计算客户在等待进入商店的队列中的平均等待时间。
我在Producer中的运行方法 -
public void run() {
for (int i = 1; i < size; i++) {
shop.put(i);
System.out.println("Customer number " + i + " has entered the store\n");
enterStore = System.currentTimeMillis();
try {
Thread.sleep((int) (Math.random() * 1000));
} catch (InterruptedException e) { }
}
}
Shop中的put方法的一部分 -
System.out.println("The store is full! Customer " + value + " is waiting in the queue.....\n");
queueStart = System.currentTimeMillis();
System.out.println("Customer joined queue at time : " + queueStart);
wait();
我的主要部分 -
double averageTime = (Shop.queueStart - Producer.enterStore)/20;
System.out.println("Average time customer queued outside store = " + averageTime);
我的代码中的其他所有内容都运行良好 - 但是平均值会打印一个减号,所以我在某处显然出了问题。我是java的新手,只是寻求帮助!
谢谢!
答案 0 :(得分:0)
时间越晚,double
值越高,因此需要切换减法操作数,以便得到
Producer.enterStore - Shop.queueStart