• OO第二单元总结


    作业策略分析

    这三次作业我的架构几乎没有变动,都是一个主类,一个电梯类,一个调度器类。
    电梯与电梯之间互不影响,相应的参数在生成实例的时候传入,调度器只负责给电梯发送指令,电梯只负责根据自己指令队列里的指令进行移动,调度策略统一使用最简单的look,不做任何优化。

    第一次作业

    公测

    公测没有出现任何bug

    互测

    互测什么都没有发生

    第二次作业

    UML图

    公测

    公测没有出现任何bug

    互测

    互测什么都没有发生

    第三次作业

    UML图

    公测

    公测时CTLE,因为我写代码的时候为了最后让电梯停下来,疯狂notifyAll(),写成了一个暴力轮询。

    互测

    互测时候使用了队友的评测机,发现了同组很多bug,有电梯关人的,但主要还是没有停下来的。
    同组的同学几乎每交一组数据我都能CTLE一次,而我在修复bug的时候因为脑残点成了非合并修复导致我出现了44个bug,原地爆炸,希望大家引以为戒。

    心得体会

    总的来说还是很休闲的,第一次接触了多线程,其不确定性实在是刺激,特别是我代码里还有随机的时候,bug的复现变得困难。
    在架构的时候最开始一定要架构好,类之间耦合度不能太高,三个电梯我也能只用一份代码,有的同学把代码复制了三遍,这样不仅效率低而且很危险,因为一旦一个地方出问题,有三份代码都要改,很容易改漏导致出错。
    以及一定要自己对代码做好分析,避免出现假的wait与notify,在windows环境下的本地测试没有找到自动测试CPU TIME的方法,如果有哪位大佬知道的话求指点QAQ。现在的方法只能是多开几个线程跑程序看CPU的利用率,如果异常的高意味着可能写出了暴力轮询。
    不得不说,多线程有评测机能测试是一件非常棒的事情,感谢OO课程给我带来良好的OO体验,希望OO越来越好!

  • 相关阅读:
    关于 SQL Server 的事务隔离
    Joplin与阿里云OSS做同步
    vite配置vitepluginstyleimport插件后启动报错
    FireDAC组件快照
    mvn site:java.lang.NoClassDefFoundError: org/apache/maven/doxia/siterenderer/DocumentContent
    MySQL8 二进制日志
    MySQL8配置文件
    创建一个 autocomplete 输入系统 前端 + 后端
    5.Ceph 基础篇 认证
    修复 Elasticsearch 集群的常见错误和问题
  • 原文地址:https://www.cnblogs.com/MountVoom/p/10761458.html
Copyright © 2020-2023  润新知