oo第二次总结

 第五次做业--多线程电梯的总结与分析数组

  一、策咯分析安全

   因为上两次的电梯经验,此次虽然加大了难度,可是本身写的时候还好是比较有信心的,因为此次是多线程电梯在跑,为了模拟实际的运行状况,此次我舍弃了上两次队列思想,采用了模拟时间的方法,具体有三个电梯线程,一个总的调度线程,还有一个输入线程。因为多线程在同时运行,且输入线程与调度线程共用一个请求托盘。每一个电梯和调度共享本身正在执行的指令序列。因此将总的指令序列和每一个电梯的本身的运行序列做为锁,分别锁注可能产生冲突的代码块以实现线程同步。
多线程

      二、类图总览函数

     

 

 

   三、度量化分析学习

   

 

   四、BUG分析测试

   此次程序出现的bug真的是把本身都蠢哭了,DOWN拼写成了DOWM,输出无效指令的时候,忘记输出时间。在输出每一个电梯的运行时间的时候,莫名其妙的一个输出位置多加了一个换行。这些错误都使人窒息,也十分感谢同窗帮我找出这些小问题,程序思路设计好,核心写完,并非真正的写完,可以按照给定的标准输出也是必不可少的。
spa

 

 第六次做业--文件系统线程

  一、策略分析   
设计

   看到此次题目的时候还非常挺开心的,由于终于不用写电梯了,跟室友讨论了一个晚上此次做业,发现此次做业仍是很是简单的相对于上次的电梯,只须要每隔500ms扫描一下本身监控的文件目录,两个for循环,两个数组,新扫描的文件数组,和上次扫描的文件数组,按照指导书的压球比对这两次的信息,来判断有无触发,由于程序自己都是扫描,只有读取的操做,因此是线程安全的,又加上此次和室友一块儿学习了一些String 类的format 方法和字符串拼接,也不会出现线程运行时输出穿插的现象。因此此次的程序是线程安全的,因此写起来比较容易,运行效果本身的测试也比较正确。  orm

  二、类图总览

      

  三、度量化分析

      

   看来C语言对个人影响仍是存在,一个函数老是想让他有更多的功能,致使不均衡。之后努力改正。

  四、bug分析

  因为莫名奇妙的缘由,此次做业被无效了,我表示十分遗憾,不知道本身有没有更多的bug,可是我本身知道本身存在一个bug,由于我设计的时候,是一个请求一个线程,因此当一个文件被同时监控大小,名字,路径,触发时,分别有恢复,写入summary,写入detail时,会因为线程的问题,致使结果的不可预测,但都是能够合理解释的。其余的本身暂未发现。

 第七次做业--出租车问题_1

  一、策略分析

   看到此次的做业,我第一反应就是一百个电梯???(被电梯毒害太深的孩子),不过本身仔细思考发现此次的做业跟电梯也确实有几分类似的地方,因而设计思路就马上有了,请求线程,出租车线程,输入线程。请求线程一开始,就睡3000ms,让出租车去抢单,抢单抢到的出租车在3000ms后被请求筛选。因为出租车须要扫描请求队列,输入须要添加请求,因此就把请求队列把出租车的扫描与输入线程的读入锁起来。因为请求选中出租车时须要改变出租车的状态,因此选中哪一个出租车就以哪一个出租车为锁,锁住修改状态的部分。以便于实现线程的同步,保证线程的安全性。

  二、类图总览

  

 

 ·  三、度量化分析

       

 

  四、bug分析

  此次没有被找到bug我仍是比较意外的,由于上周要OS期中考试,因此为了复习此次本身的程序写的的确是有些仓促,不过基本的指令都仍是能够跑的,每一个出租车的运行轨迹我都单独输出一个文件里,虽然说有一百多个文件,可是看起来仍是十分清晰的。

心得与体会

  经过这三次做业的编写与测试,本身也愈来愈看淡这门课的成绩了,只单纯的想从这门课训练下本身的技能。成绩并不能绝对的反映出本身这门课学的好坏,只要本身学到本身想学到的东西就行了。

相关文章
相关标签/搜索