博客
关于我
强烈建议你试试无所不能的chatGPT,快点击我
OO第二单元总结
阅读量:5272 次
发布时间:2019-06-14

本文共 733 字,大约阅读时间需要 2 分钟。

一、设计策略总结与分析

1、第一次作业:

第一次作业主要理解多线程机制,设计思路并不复杂。有两个线程类:Pas(发出请求)、Ele(电梯类),Main和一个保存请求的队列Ar。Pas调用ElevatorInput把新请求加入请求队列,当请求队列非空时,Ele取出一条指令执行,直到不再有新请求。

2、第三次作业:第三次作业主要解决换乘问题和调度策略。对于不能直达的请求,由Pas()分割成两个请求,由链表链接,在第一段请求完成后,检查是否有后续链接请求。调度策略上采用了比较简单的方式:由于三部电梯都可以到达一楼,所以对于不能直达的请求,均先运送到一楼,再从一楼运到目的地。多部电梯空闲时优先选择速度较快的电梯,当电梯内有乘客时,可以沿途捎带方向一致的乘客。


 

 二、基于度量对程序结构的分析

第一次作业类图:

第三次作业类图:

分析:第三次作业其实存在更有效的调度换乘策略,比如将15楼也设为换乘楼层,但由于简单的策略顺利通过了测试,没有进一步优化。


 

三、bug分析

第一次作业没有发现bug

第三次作业在测试出现了提前终止的bug(只有一条指令的测试点) ,原因是请求被一部电梯接收后队列为空,另外两部电梯终止运行,没有进行后续换乘。在修正之后,顺利通过了测试。


 

四、心得体会

1.在第三次作业中出现了线程提前终止的问题,通过判定队列与电梯内是否均无待执行请求解决,适时终止线程

2.应用synchronized等方法,加深了对多线程运行方式的理解。

3.三部电梯写公共的电梯类,加深了对面向对象思想的理解。

4.使用链表的方式解决换乘,练习了对数据结构的使用。

转载于:https://www.cnblogs.com/zznhaha/p/10762500.html

你可能感兴趣的文章
使用XML传递数据
查看>>
TYVJ.1864.[Poetize I]守卫者的挑战(概率DP)
查看>>
0925 韩顺平java视频
查看>>
iOS-程序启动原理和UIApplication
查看>>
mysql 8.0 zip包安装
查看>>
awk 统计
查看>>
CSS min-height 属性
查看>>
模板设计模式的应用
查看>>
实训第五天
查看>>
平台维护流程
查看>>
2012暑期川西旅游之总结
查看>>
Linux发行版的排行
查看>>
12010 解密QQ号(队列)
查看>>
2014年辛星完全解读Javascript第一节
查看>>
装配SpringBean(一)--依赖注入
查看>>
daydayup2 codeforces143C
查看>>
ANT打包J2EE项目war包
查看>>
UESTC-我要长高 DP优化
查看>>
java选择文件时提供图像缩略图[转]
查看>>
方维分享系统二次开发, 给评论、主题、回复、活动 加审核的功能
查看>>