有2个进程并排运行。家庭作业

时间:2017-07-27 18:07:47

标签: java stack queue

如标题中所述,这是用于家庭作业,我不是在寻找具体的代码,只是关于如何实现这一点的想法。

我需要在建筑物中模拟电梯。

所以我有一系列电梯,我的程序随机生成这些电梯的请求,从1个随机楼层到另一个楼层。当收到请求时,电梯从其当前位置开始接载乘客并将其送往目的地。移动每层楼需要1个单位时间。

我想模拟一下或多或少的电梯如何影响在给定时间内可以服务的乘客数量。

我通过以下方式生成请求:

while (!arrayOfRequests.isEmpty()){
sourceFloor = arrayOfRequets[0].getSource();
destinationFloor = arrayOfRequets[0].getDestination();

elevatorMovement(sourceFloor, destinationFloor);

remove(arrayOfRequests[0]);
}

现在,liftMovement方法继续执行它的工作,一旦完成,我将从堆栈中删除该请求。

问题是我需要我的程序来处理下一个请求并将它送到电梯#2,而电梯#1正忙着处理上一个请求。

如何实现这一目标?这个类太基础了,不需要线程等高级概念。 哦,这都是Java。

非常感谢你的帮助!

1 个答案:

答案 0 :(得分:1)

不幸的是,我知道同时运行2个循环的唯一方法就是线程。如果要线程化,请查看How to run two FOR loops at the same time。 我将使用的另一种方式是不同时运行每个,只是一个接一个。要做到这一点,您可能希望使用if / elif序列,在其中运行每个循环。或者,您可以随机选择所选的阵列并随机选择arrayOfRequests / arrayOfRequests2(第二个电梯),假设您有一个检查电梯是否处于运动状态的if条件。 我建议和你的老师谈谈线程。如果他说不,那就随机化它(它甚至会让它看起来像真正的电梯!)。如果他说是,那么你就可以解决它(并实现你的目标)。