2017-07-27 76 views
1

正如标题所述,这是作业,我不是在寻找特定的代码,只是想法如何实现这一点。有两个并行运行的进程。家庭作业

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

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

我想模拟在一定的时间内,或多或少的电梯是如何影响乘客的数量的。

我产生的请求:

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

elevatorMovement(sourceFloor, destinationFloor); 

remove(arrayOfRequests[0]); 
} 

现在elevatorMovement方法进入并做它的事情,一旦做了,我删除从堆栈的请求。

问题是我需要我的程序来照顾下一个请求并将其交给电梯#2,同时电梯#1正忙于处理先前的请求。

这是如何实现的?这个类太基本了,不需要像线程等先进的概念。 哦,这一切都在Java中。

非常感谢您的帮助!

+0

我知道你不是要求代码,但这个网站也不是要求你设计代码的地方。网上有其他网站可以帮助这个 –

+0

另外,我认为线程将是我会采取的方式。这将是一个很好的应用程序来学习如何线程,因为它很简单,线程也是 –

+0

请您引导我到正确的资源。 – doddy

回答

1

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

+0

谢谢。你可能是对的。我想我可能误解了这个任务。我会和我的教授谈谈这件事。 – doddy

+0

我希望它有帮助! –