OO第二次博客作业
Posted 计庭瑜
tags:
篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了OO第二次博客作业相关的知识,希望对你有一定的参考价值。
第五次作业——多线程电梯
1:设计策略
刚入手第五次作业时,一头雾水,根本不知道多线程该怎么写,该怎么入手,对各个线程之间的关系与调度不是很熟悉,就耗费了大量的时间在学习多线程的写法,最后从课件上的消费者生产者模型中得到一些灵感。
这次作业与第一阶段的电梯作业全然不同,需要在读取输入的同时进行操作,就不能将全部的指令读取完再进行一系列操作,这对指令的处理难度是非常大的,在借鉴了消费者生产者模型后,就构造了一个托盘,将请求放到这个托盘中,再从托盘中抓取请求,最后作用于调度器。
2:作业类图
3 度量分析
4:bug分析
在这次作业中,由于未仔细处理好电梯间的调度关系,被判为无效作业,仔细查看了自己的代码,是由于在上交时少了一行代码,然后输出的结果未能显现,且本身的调度机制也存在问题,这为我之后的作业敲响警钟。
第六次作业——IFTTT的实现
1:设计策略
这次作业从之前的电梯调度,变为了文件的处理,不仅仅是这样,对文件的处理又要求了线程的安全,这次作业也是绞尽脑汁在想线程安全的地方用在哪里,SafeFile该怎么用,这次的作业对读取信息的难度并没有那么大,只需要定时扫描请求队列即可,不像电梯中存在同质,捎带等请求,只需按照请求的顺序,一条条处理即可。
2:作业类图
3:度量分析
4:bug分析
在这次作业中,由于线程安全的问题,就在对文件的处理和recover过程中存在的冲突并没有解决,就导致输出的信息存在很多bug,但最终就只被报了一个bug,这虽然只是一个简单的bug,但让我对线程安全和冲突问题的理解又上升了一个档次。
第七次作业——模拟出租车
1:设计策略
一拿到这次作业,就想到了这次作业其实和多线程电梯有异曲同工之妙,因此在设计这次作业时自然而然就想到了三个线程,调度线程,出租车线程和输入线程,在每个输入线程到来时,让调度线程进行3000ms的延迟操作,让每个出租车去抢单,再对各个抢单的出租车按条件进行筛选,调出该执行请求的出租车后对它进行调度,再按最短路径让他进行运动即可,然后改变状态。
2:作业类图
3:度量分析
4:bug分析
在这次作业中,由于上次IFTTT作业的互测阶段让人很不愉快,这次似乎大家都手下留情了?在这次的输出中,我没有将每个输出进行很好的规划管理,就对输出在文件中的东西显得很乱,不易阅读,就被报了几个bug,也都能接受。
心得体会:
这三次作业写得让人身心俱疲,过程十分痛苦,感觉就压榨自身的所有精力投入到这次作业中,OO课程设计的让人压力实在太大,但在这过程中让我们学到了很多知识,可以说是有利有弊吧,在不断写作业的过程中获得知识不断完善自己的知识盲区,这样也不失为一件好事。
以上是关于OO第二次博客作业的主要内容,如果未能解决你的问题,请参考以下文章