代码改变世界

OO第二次博客

2018-05-02 19:56  小削  阅读(212)  评论(0编辑  收藏  举报

(1)设计策略:

  设计策略方面感觉最重要的就是一次次地读指导书吧,无论是线程的数量或是各线程的功能,甚至要建立哪些类,很大程度上都要根据指导书的限制来制定,正确理解解决问题过程中各线程功能,另一方面就是要注意线程安全的问题,比如第5次作业的设计就非常糟糕,在不同的线程类中添加其他线程作为成员,在第6次作业中则根据指导书写SafeFile类,以四个不同的监控器线程对文件进行监视,利用锁避免了线程安全问题,第7次作业认真理解指导书后思路也比较明确,用100个线程模拟了各出租车的行动.... 另外在设计上很大需要改进的一点是3次作业都把所有类写在了一个.java文件中。

(2)

  第五次作业设计糟糕,没有完成。

  第六次作业结构比较简单,写程序时最大的一个问题是对于文件夹的处理非常差,几乎不能实现对文件夹的监控。

  

第七次作业是对出租车的调度,在最费时间的寻找路径算法上,完全借用了gui包中的方法,并记录了程序计算出移动路径的时间长度以调整出租车移动时的线程睡眠时间,这应该是程序中最耗时的部分

 

 

(3)关于BUG:

第六次作业中主要是文件的监控没有做到,在这里产生了很大的问题与一系列BUG

分到的同学程序写的很完备,readme中也提供了详细的测试方法,还说道自己熬了三天。。。基本上以他提供的测试方法为主,没找到什么BUG

第七次作业有可能是我的程序没有引起对方的注意,自己在本地测试的过程中也没有发现BUG

测试过程主要还是以指导书为主,先从MAP文件开始,到请求的输入,主要就基本情况+极端,考虑行数、字符、数字范围什么的,到了处理请求的过程反而没有构造出什么很能找到BUG的样例

(4)心得与体会:
关于Java编程,从开始面对问题,逐渐理解到形成设计的思维过程确实很有趣,但最让人头痛的地方还在于线程的设计,比如出租车还听说了1个线程跑所有出租车,另外就是线程相关的知识比如线程安全的队列,锁,notify等等比较庞杂,感觉很难形成一个体系,明确的知道该用什么。