multi tasking elevator simulation电梯多任务模拟
另一个挑战介绍
要执行该程序,请运行python main.py
。最新版本位于根目录中,每个名为iterationX
的文件夹表示旧版本。
-
main.py: 模拟电梯和控制器运行的主程序
-
elevator.py: 电梯类,代表电梯的属性和行为
-
controller.py: 控制器类,负责管理建筑内所有电梯的运作
-
task.py: 代表乘客从当前楼层到达目标楼层的任务
实现要求:
-
任务管理与调度:让电梯承担多项任务,统一
getter
和setter
方法。 -
多线程调度:通过多线程处理任务请求,优化调度性能。
-
效率指标:设计一个指标来反映电梯的效率,以便对模拟效果进行量化。
模拟和测试:
-
任务分布:尝试不同的任务到达分布,观察电梯的响应。
-
任务过期:让任务在一定时间后过期(例如,乘客不耐烦选择走路),提升模拟的现实感。
迭代二:电梯多任务支持
在第二次迭代中,每部电梯能够承担多个任务。
-
假设:每台电梯最多可以同时处理10项任务。
-
调度原则:每部电梯在沿途会停在任务队列不为空的楼层,按同一方向接收任务,逐步完成所有任务请求。
实现方法:
采用多线程技术进行任务调度,优化资源利用率,让电梯根据任务负荷合理安排停靠和任务承接,从而实现电梯高效运行。
下载地址
用户评论