热门标签 | HotTags
当前位置:  开发笔记 > 编程语言 > 正文

oo第二次总结

第五次作业类图:度量图:UML时序图:第五次作业中的电梯和调度器都用到了线程机制,然后在run方法中用到了很多的if-else,所以导致了嵌套比较深。由于这是第一次

 

第五次作业类图:

度量图:

UML时序图:

 

第五次作业中的电梯和调度器都用到了线程机制,然后在run方法中用到了很多的if-else,所以导致了嵌套比较深。由于这是第一次接触写文件和多线程,在没有合理安排时间下,这是过了提交时间后我才写出来的,所以被评为无效作业了,也就没了公测和互测,写完后自己也不断地对其进行调试完善。虽然这次作业没能有效,但是我通过这次作业初步的了解多线程的使用和多线程之间的同步问题,以及对文件进行基本的创建和写入操作。

第六次作业类图:

 

 第六次作业度量图:

UML时序图:

由于上次作业的无效,我给这次作业空出了更多的时间去完成,结果还是令我满意的,虽然后面在提交截至时心血来潮把run方法里分成多个方法去调用,这样让代码看起来没那么多,但是忘了文件转移后应该返回监控对象于是就出了能跟踪但是没把原来的监控对象换成新对象并导致触发器一直被触发的bug。互测上匹配到的代码除了输入上有点小问题其他地方都做的很好,他的测试线程也写得很详细,相关的测试方法也都一并给出。在代码风格以及方法调用上是一个非常有借鉴意义的代码!

 

第七次作业类图:

度量图:

 

 UML时序图:

第七次作业中虽然给的GUI有着500多行很吓人,但是他的接口等方面做得都比较完善,这让我使用起来也比较方便,这次作业中我发现了自己在出租车抢单窗口结束后抢单出租车的测距上出现的问题,我程序中每部出租车都有一个Poing【】队列来存出租车运行路径,我测距的依据是各个抢单出租车当前所存的队列长度来进行判断的,但我没注意到这时候出租车没有被分配请求所以Point【】队列为空,这导致在多部出租车进行抢单时,程序就会卡在分配出租车的方法里,导致后续的指令也无法进行调度。还有就是由于未知原因我的程序无法同时读入多行请求,中间我通过修改scanner类的使用方法成功读入多行一次但后面又不行了,现在还是一头雾水。互测代码使用了一些不符合懂我原则的设计,这给我在阅读代码时带来了很大的困难,但最后还是发现了对方对数组边界未进行约束,而可能出现越界crash。

心得与体会

这三次作业都很难,多线程之间的同步,资源的占用,输出文件的实时交互等等,这些都需要很细心地去思考和设计,在写作业时的考量中以及实验课上的作业中我也收获了协调多线程之间资源占用的方法。不足之处还是自己在代码设计的一些细节上还会疏忽大意,希望自己以后的作业中能尽量规避。


推荐阅读
  • 深入解析Android 4.4中的Fence机制及其应用
    在Android 4.4中,Fence机制是处理缓冲区交换和同步问题的关键技术。该机制广泛应用于生产者-消费者模式中,确保了不同组件之间高效、安全的数据传输。通过深入解析Fence机制的工作原理和应用场景,本文探讨了其在系统性能优化和资源管理中的重要作用。 ... [详细]
  • 2012-06-0821:26:42  用matlab来建模,仿真不同时刻ostask在队列中的装载情况。输入参数如下作为初学者,M文件写的有点长。能实现功能就算学以致用了。cle ... [详细]
  • 在 Linux 环境下,多线程编程是实现高效并发处理的重要技术。本文通过具体的实战案例,详细分析了多线程编程的关键技术和常见问题。文章首先介绍了多线程的基本概念和创建方法,然后通过实例代码展示了如何使用 pthreads 库进行线程同步和通信。此外,还探讨了多线程程序中的性能优化技巧和调试方法,为开发者提供了宝贵的实践经验。 ... [详细]
  • 2012年9月12日优酷土豆校园招聘笔试题目解析与备考指南
    2012年9月12日,优酷土豆校园招聘笔试题目解析与备考指南。在选择题部分,有一道题目涉及中国人的血型分布情况,具体为A型30%、B型20%、O型40%、AB型10%。若需确保在随机选取的样本中,至少有一人为B型血的概率不低于90%,则需要选取的最少人数是多少?该问题不仅考察了概率统计的基本知识,还要求考生具备一定的逻辑推理能力。 ... [详细]
  • 本文详细介绍了如何使用Python的多进程技术来高效地分块读取超大文件,并将其输出为多个文件。通过这种方式,可以显著提高读取速度和处理效率。 ... [详细]
  • 数据结构第三章,栈、队列、数组,期末不挂科指南,第3篇
    数据结构第三章,栈、队列、数组,期末不挂科指南,第3篇,Go语言社区,Golang程序员人脉社 ... [详细]
  • 在工业过程控制系统中,由于被控对象的环境比较恶劣,干扰源比较多,仪器、仪表采集的信息常会受到干扰,所以在模拟系统中,为了消除干扰,常采用RC滤波电路,而在由工业控制计算机组成的自动 ... [详细]
  • 在PHP中,为了更高效地打开和读取目录并列出其中的文件,可以使用一个自定义函数来返回查询目录下的文件和文件夹列表。该函数会将结果以数组形式返回,并明确区分每个条目是文件还是目录,从而提供更友好和实用的输出。此外,该函数还可以进一步扩展,支持递归查询子目录,以便更全面地获取目录结构信息。 ... [详细]
  • 2022年7月20日:关键数据与市场动态分析
    2022年7月20日,本文对当日的关键数据和市场动态进行了深入分析。主要内容包括:1. 关键数据的解读与趋势分析;2. 市场动态的变化及其对投资策略的影响;3. 相关经济指标的评估。通过这些分析,帮助读者更好地理解当前市场环境,为决策提供参考。 ... [详细]
  • Mac版Office 2021与2016:项目管理软件下载、安装及一键永久激活指南
    Mac版Office 2021与2016:项目管理软件下载、安装及一键永久激活指南 ... [详细]
  • 本文是Java并发编程系列的开篇之作,将详细解析Java 1.5及以上版本中提供的并发工具。文章假设读者已经具备同步和易失性关键字的基本知识,重点介绍信号量机制的内部工作原理及其在实际开发中的应用。 ... [详细]
  • 深入解析 Synchronized 锁的升级机制及其在并发编程中的应用
    深入解析 Synchronized 锁的升级机制及其在并发编程中的应用 ... [详细]
  • C++ 异步编程中获取线程执行结果的方法与技巧及其在前端开发中的应用探讨
    本文探讨了C++异步编程中获取线程执行结果的方法与技巧,并深入分析了这些技术在前端开发中的应用。通过对比不同的异步编程模型,本文详细介绍了如何高效地处理多线程任务,确保程序的稳定性和性能。同时,文章还结合实际案例,展示了这些方法在前端异步编程中的具体实现和优化策略。 ... [详细]
  • 本文介绍了如何利用 Delphi 中的 IdTCPServer 和 IdTCPClient 控件实现高效的文件传输。这些控件在默认情况下采用阻塞模式,并且服务器端已经集成了多线程处理,能够支持任意大小的文件传输,无需担心数据包大小的限制。与传统的 ClientSocket 相比,Indy 控件提供了更为简洁和可靠的解决方案,特别适用于开发高性能的网络文件传输应用程序。 ... [详细]
  • 在Python网络编程中,多线程技术的应用与优化是提升系统性能的关键。线程作为操作系统调度的基本单位,其主要功能是在进程内共享内存空间和资源,实现并行处理任务。当一个进程启动时,操作系统会为其分配内存空间,加载必要的资源和数据,并调度CPU进行执行。每个进程都拥有独立的地址空间,而线程则在此基础上进一步细化了任务的并行处理能力。通过合理设计和优化多线程程序,可以显著提高网络应用的响应速度和处理效率。 ... [详细]
author-avatar
xz7777
这个家伙很懒,什么也没留下!
PHP1.CN | 中国最专业的PHP中文社区 | DevBox开发工具箱 | json解析格式化 |PHP资讯 | PHP教程 | 数据库技术 | 服务器技术 | 前端开发技术 | PHP框架 | 开发工具 | 在线工具
Copyright © 1998 - 2020 PHP1.CN. All Rights Reserved | 京公网安备 11010802041100号 | 京ICP备19059560号-4 | PHP1.CN 第一PHP社区 版权所有