【问题标题】:Have 2 processes running side by side. Homework有 2 个进程并排运行。在家工作
【发布时间】:2018-01-03 14:45:28
【问题描述】:

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

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

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

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

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

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

elevatorMovement(sourceFloor, destinationFloor);

remove(arrayOfRequests[0]);
}

现在,电梯移动方法开始执行它的工作,一旦完成,我就从堆栈中删除该请求。

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

如何做到这一点?这个类太基础了,不需要线程等高级概念。 哦,这一切都在 Java 中。

非常感谢您的帮助!

【问题讨论】:

  • 我知道您不是在要求代码,但本网站也不是在设计代码时寻求帮助的地方。还有其他在线网站可以提供帮助
  • 另外,我认为线程是我会采用的方式。这将是一个很好的应用程序来学习如何线程,因为它很简单,线程也是如此
  • 能否请您指导我找到正确的资源。
  • codingforums.comgoogle 是朋友
  • 电梯可以多人乘坐吗?

标签: java stack queue


【解决方案1】:

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

【讨论】:

  • 谢谢。你可能是对的。我想我也可能误解了任务。我会和我的教授谈谈这件事。
  • 希望对您有所帮助!
猜你喜欢
  • 1970-01-01
  • 1970-01-01
  • 2012-09-30
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 2016-01-31
  • 1970-01-01
  • 2022-11-01
相关资源
最近更新 更多