gpt4 book ai didi

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

转载 作者:行者123 更新时间:2023-11-30 06:35:00 25 4
gpt4 key购买 nike

如标题所述,这是为了家庭作业,我不是在寻找特定的代码,只是关于如何实现它的想法。

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

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

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

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

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

elevatorMovement(sourceFloor, destinationFloor);

remove(arrayOfRequests[0]);
}

现在,elevatorMovement 方法开始执行它的操作,一旦完成,我就会从堆栈中删除该请求。

问题是我需要我的程序处理下一个请求并将其交给电梯 #2,而电梯 #1 正忙于处理上一个请求。

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

非常感谢您的帮助!

最佳答案

不幸的是,我知道同时运行 2 个循环的唯一方法是线程。查看How to run two FOR loops at the same time如果你想线程的话。我使用的另一种方法是不同时运行,而是一个接一个地运行。为此,您可能需要使用 if/elif 序列,在其中运行每个循环。或者,您可以随机化所选的数组并随机选择 arrayOfRequests/arrayOfRequests2(第二部电梯),考虑到您有一个 if 条件来检查电梯是否在运动或不是。我建议和你的老师谈谈线程的问题。如果他拒绝,请将其随机化(这甚至有助于使其看起来像真正的电梯!)。如果他同意,那么您就可以将其串联起来(并实现您的目标)。

关于java - 有 2 个进程并行运行。家庭作业,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/45358102/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com