• OO第二单元总结


    作业策略分析

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

    第一次作业

    公测

    公测没有出现任何bug

    互测

    互测什么都没有发生

    第二次作业

    UML图

    公测

    公测没有出现任何bug

    互测

    互测什么都没有发生

    第三次作业

    UML图

    公测

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

    互测

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

    心得体会

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

  • 相关阅读:
    HDU 4350 Card
    HDU 4287 Intelligent IME
    POJ Stars
    字符串处理
    NYOJ 63 小猴子下落
    在 DataGrid 控件中显示 SQL Server 数据库中的数据
    Linq to sql学习之查询句法
    SqlMethods
    SQLSERVER 2008 R2中的全文检索
    分享学习网站大全
  • 原文地址:https://www.cnblogs.com/MountVoom/p/10761458.html
Copyright © 2020-2023  润新知