OO第二次博客作业

第五次作业

类图

度量

 Bug分析

1.本次写无效输入的正则时忘记判断了0楼层为非法指令导致错误。

2.第一次写多线程设计,很多线程之间的同步控制没有办法很好的理清楚,在电梯状态转换的边界上的线程同步控制处理不当。

设计分析

本次设计时没有很好的理清楚各个线程状态转换时,线程之间的交互逻辑。导致当电梯在转换边界的指令的捎带情况会出现问题。

第六次作业

类图

度量

Bug分析

1.未能正确理解指导书的rename逻辑,导致rename逻辑出错。

2.输入判断逻辑有误,导致输入时不能正确的在指令条数过多时停止。

设计分析

本次作业主要难点在于正确理解指导书后,将每个功能理解清楚。我将每次监控请求都作为一个线程来运行,这样保证了每个线程之间的消息独立性。代码量和思维量也减小很多,体现了多线程编程的好处。

第七次作业

类图

 

度量

Bug分析

由于时间是取自系统时间,且时间精度为100ms,可能会因为1ms的误差导致最后100ms的误差。

设计分析

将每辆出租车,每个请求各开一个线程。然后通过一个请求列表来进行出租车和请求之间的交互。这次出租车的状态转换之间的线程同步处理较为简单,只需注意出租车在改变状态时的几种情况即可。

发现别人bug的策略

由于这几次作业都是多线程,不好通过大量的数据来批处理的测试对方bug。因此主要采取测公测时研究对方代码的逻辑来进行测试。

多线程设计总结

多线程的设计关键在于几点:对对象分析之后线程的选择,线程与线程之间的同步状态的问题,线程安全问题。

心得体会

感受到了多线程的程序的方便之处。

 

posted @ 2018-05-02 16:46  梦游的锤子  阅读(194)  评论(0编辑  收藏  举报