标签:时序 代码 src image http object 一个 无效 复杂
多线程设计总结
第5次没写,无效作业。
第6次,可读文件对象对应一个线程,目录文件对应一个线程,同时目录下所有文件对应一个线程。
第7次,每个有效请求对应一个线程,当请求派单窗口结束时开始,请求结束时结束。每个出租车对应一个线程,不结束。都取请求的一个独立线程。
度量
第5次没写,无效作业。
第6次作业:
第7次作业:
类图
第5次:无效作业,没写。
第6次:
Detail方法实现的是snapshot功能,但也有记录功能,record实际上是Deatil记录功能,这里设计比较混乱。获取请求可直接在main中而不必独设线程。
第7次:
获取请求可直接在main中而不必独设线程。run方法太过繁杂,应该把功能独设函数。
自己的bug
没人测出来。
测试别人的bug方法
多线程程序的代码逻辑相比单线程程序复杂很多,有时候直接阅读代码也难以找到其中的漏洞。但是同时也难以用大量数据测试。所以本人的测试除去少量的数据量压力测试,都用少量的边界数据或是一般的逻辑易错数据进行测量
心得
多线程设计具有高度自由度,输出输入其实根据个人的设计不同,具有非常大的差异。所以readme的书写十分重要。readme中不仅要标注输入输出文件所在地,还要指示出输入的格式,输出的内容含义,以及测试用函数的位置和修改方法以及用法。
多线程不宜有多个锁,所以我的线程基本上都通用一个锁对象object,这样很难会发生时序和逻辑上的错误,但是程序的虚拟的运行时间与实际的时间会差上不少,并且很难通过debug改正。
标签:时序 代码 src image http object 一个 无效 复杂
原文地址:https://www.cnblogs.com/jxylove/p/8975821.html