OO第二单元总结

OO第二单元总结

设计策略

三次作业都是简单的生产者消费者模式。
电梯算法采用最好写的scan算法,前两次性能分还可以,第三次由于加入了换乘需求,性能分全面崩盘。

程序分析(第三次作业,前两次作业略)

度量

OO第二单元总结_第1张图片

类图

OO第二单元总结_第2张图片

代码行数

OO第二单元总结_第3张图片

BUG分析

1 电梯线程的结束条件,以及等待条件没有找对。第一次作业和第三次作业都是因为某个(或某几个)电梯线程过早结束,导致乘客请求未满足。
2 没有第0层
3 电梯不运行的时候,竟然不允许人上电梯
4 电梯处于最底层和最高层的时候,不允许人上电梯
5 一个线程应避免直接操作另一个线程

体会

电梯作业整体难度低于第一单元,用时少于第一单元。通过这三次作业,我初步了解了多线程,以及多线程编程的一些方法,收获不少。

你可能感兴趣的:(OO第二单元总结)