OO第二阶段总结

oo第8次作业

oo第5次作业

  • 第五次作业多线程分析:第五次作业是第一次多线程作业,对于此次作业的多线程关键在于对于输入指令的分配过程中出现的问题,不能把相同的指令分配给不同的电梯等问题。我采取的设计是利用java自带的线程安全类ConcurrentLinkedQueue来对指令进行存储,避免了线程安全冲突的问题

  • 第五次作业程序结构:从程序结构角度考虑,第五次作业因为将请求的处理以及请求的选取等都交给了电梯类来进行相应的处理,所以导致了电梯类设计上过于臃肿,以后要避免

  • 分析自己程序的bug:自己程序中因为电梯类方法处理了比较多的事情,所以在同质的判断上,因为线程运行的问题,使得同质问题不能够很好的得到处理,此处会有相应的bug

  • 分析别人程序bug所采取的策略:将自己测试过程中发现问题的样例拿去进行测试,发现输出顺序的一个bug

oo第6次作业

  • 第六次作业多线程分析:第六次作业看似好像有很多线程安全的问题,其实只要对程序的执行顺序进行控制,即先进行创建文件写文件等操作之后,再对文件信息的内容进行读取,则可以避免线程安全的问题

  • 第六次作业程序结构:第六次作业写之前没有进行很好的设计分析,写的过程中遇到相应的问题再去进行调整,所以程序的类比较多,且功能有些重复,下次要注意先进行适当的分析之后再开始写

  • 分析自己的bug:自己程序的bug在于recover操作并没有得到很好地处理,导致有些情况下进行相应地操作之后,recover并没有生效,属于设计上就没有解决的bug

  • 分析别人程序bug所采取的策略:第六次作业抽到的人程序较为简洁,所以采取了读代码的方式进行bug的查找,最后发现他处理文件之时并没有考虑原来文件夹中的内容情况导致的2个bug

oo第七次作业

  • 第七次作业多线程分析:第七次作业线程方面的问题主要是请求不能被多个车子执行或者一个车子执行多个请求等问题,关于此次多线程的处理,就是再出租车类中加上相应的锁来避免这种情况。

  • 第七次作业程序结构:第七次作业设计过程中没有考虑全面,导致类的设计有点少,之后功能都是加在了相应的类上,导致一个类的任务有点繁杂,并没有很好地区分开来,下次设计要注意尽量考虑清楚全部情况

  • 分析自己的bug:因为好多功能是完成了大部分程序之后才去添加的,所以导致很多输出方面未输出前面的情况,且缺乏测试,公测地图范围外的点也没有加以考虑,下次写作业要注意细节的测试

  • 分析别人bug的策略:看了别人代码之后,没发现bug

心得体会

利用这门课,首次真正地去编写多线程的程序,让自己对于多线程有了初步的认识,对于多线程程序编程过程中容易出现的问题也有了一定的认识,慢慢地也知道如何去进行多线程方面的bug调试

原文地址:https://www.cnblogs.com/buaaguzhanpeng/p/8979891.html