OO第二单元作业总结

刘发源-19373612 2024-04-19 19:19:50

第二单元三次作业实在是太难了,我一次有效作业也没有,但还是试着写一些我的感想吧

第五次作业

楼座内有6部电梯,接收指定乘客请求,在1-11层之间合理调度,将其送到目的地。电梯需要实时反馈时间戳。

我把调度策略弄明白了,但代码没能完成。电梯调度采用采用LOOK策略,具体策略如下:

 

  1. 判断乘客列表和侯乘队列是否为空。

    • 如果为空,进入下一步判断,进入2判断侯乘队列是否结束。
    • 如果不为空,进入3设置电梯运行方向。
  2. 判断侯乘队列是否结束。

    • 如果结束,电梯线程结束。
    • 如果未结束,进入3设置电梯运行方向。
  3. 设置电梯运行方向。

    • 若有乘客要到达的楼层在当前方向上的前面,则保持当前方向不变。
    • 若1不成立,则电梯原地等待。
  4. 判断是否有乘客要出去
  5. 判断是否有乘客要进来。

    • 如果有,进来,侯乘队列减一,更新目的地。
  6. 运行一层。

但由于侯乘序列代码化的一些bug,导致最后作业无效。

第六次作业

第六次作业我也有尝试去写,有一些思考,但遇到了更多的问题

我准备采用随机策略,最原始的生产者-消费者物竞天择模型,随机生成电梯序号来为乘客选择搭乘电梯,当大批乘客迅速到来时,随机分配时可能会拥有更好的性能,但为乘客请求数较少时,随即策略可能会导致一台电梯频繁工作。这样显然不是最优策略,但这是我想到的最简单策略,可惜也没能实现

感悟与思考

第二单元的线程学习经历让我从一个完全不了解线程概念的状态逐渐理解了线程的本质和相关的概念,如synchronized、notif等。虽然没能最终完成作业,但对于线程的学习还是大大提高我面向对象的能力,无论如何,我要在下一次作业中极限努力,争取完成下一单元的作业。

...全文
41 回复 打赏 收藏 转发到动态 举报
写回复
用AI写文章
回复
切换为时间正序
请发表友善的回复…
发表回复

301

社区成员

发帖
与我相关
我的任务
社区描述
2023年北航面向对象设计与构造
学习 高校
社区管理员
  • YannaZhang
  • CajZella
  • C_ecelia
加入社区
  • 近7日
  • 近30日
  • 至今
社区公告
暂无公告

试试用AI创作助手写篇文章吧