面向对象设计与构造2022 (北京航空航天大学 - 计算机学院)

  • BUAA-OO2022-UNIT2总结

    一、前言 本单元主要是通过电梯系统来训练多线程的相关应用。个人认为在难度跨度上没有第一单元那么大,但是debug的难度大大增加,对于加锁部分也更需要逻辑清晰、结构合理。本人第一次借鉴实验课的架构,把个人认为多余的调度器删除,之后在架构上都没有太大的改动,主要是增加各种“补丁“。但是综合来看思路还是不
    火花hhh   2022-05-01 20:03   0   22
  • 第二单元总结

    第二单元总结 一、三次作业架构设计 1、第一次作业 第一次作业需要实现每个楼座只有一部纵向电梯的调度与运输,因此我采用了生产者-消费者模型,将输入的请求放入等候队列中,由调度线程根据请求到达的早晚来将请求分配给不同的电梯,而电梯则在运行过程中根据ALS算法判断应该在什么时候开关门以及运送哪些乘客。其
    李沛儒   2022-05-01 19:06   0   15
  • BUAA_2022_OO_第二单元总结

    #线程安全——同步块与锁 在三次作业中,我均选用了synchronized锁。一方面,它实现简单,可自动释放,不容易出bug;另一方面,作业中的读写操作都比较简单,读读、读写、写写均互斥也不会造成太大的性能影响。 ###第五次作业 所有同步块均设置在共享对象类RequestQueue的方法中,所有加
    现充宅   2022-05-01 15:39   0   40
  • BUAA OO 第二单元总结

    综述 本单元的任务为模拟多线程实时电梯系统,主要考察多线程运行和交互的实现。在这三次作业的迭代中,第一次作业只涉及多部电梯的运行和电梯与调度器的竞争;第二次作业允许同层或同座多电梯运行,由于采用自由竞争策略,涉及到多部电梯竞争同一等待队列;第三次作业增加换乘策略,增加电梯的请求传递交互。通过三次作业
    伊尔卡米诺   2022-05-01 15:18   0   15
  • BUAA面向对象课程博客 第2弹:简单电梯调度系统

    #1 概述 本单元我基于Java完成了一套多线程电梯运行与调度模拟系统。本文中我将按本单元3次作业的迭代顺序,总结我的设计思路与关键实现细节。通过本文,你可以了解到: 简单的Java多线程设计模式 多线程程序的增量开发方法 #2 作业回顾 ##2.1 第一次作业 本单元实现了北航新主楼A-E座共享输
    ^^^TOO_LOW^^^   2022-05-01 15:05   0   80
  • OO第二单元总结

    一、同步块的设置 在第二单元的作业中,我只使用了同步块的设置,没有使用读写锁,因此仅就同步块这一方面来介绍我三次作业的设计。从第一次作业初上手多线程,对于synchronized懵懵懂懂、看wait/notify晕头转向,到第三次作业已经摸清了这些关键字、内置方法的机理,能够肉眼分析出轮询的bug,
    hua-0x522   2022-05-01 14:54   0   34
  • 20373222李世昱第二单元总结

    第二单元博客总结 第五次作业UML类图和时序图如下: 由于第五次作业整体比较简单,该次作业并无过多迭代性考虑,采用的是标准的生产者消费者模式,INPUT线程不断读入新的数据发送给调度器,调度器把符合对应楼座的请求发送给对应的电梯,剩下的交给电梯自己不断处理。 同步性控制:第五次作业共享数据比较少,所
    zdfwqc   2022-05-01 14:17   0   14
  • BUAA OO 2022 第二单元

    ↓ gitPage 博客链接: https://mmmusel.github.io/2022/05/01/OO-Unit2-summary/ 一、电梯的调度策略 1.1 状态转移图 1.2 纵向电梯的LOOK算法 LOOK算法实现 与真实的电梯大致相同的策略,即维护电梯当前运行方向dir,更远层无请
    Mmmusel   2022-05-01 11:12   0   31
  • OO 第二单元博客作业

    OO 第二单元博客作业 第一次作业 题目简述 用多线程实现一个目的选择电梯系统。其中共有五部独立的纵向电梯,请求的出发点和目标点必定位于同一楼座 UML图 架构分析:由于本次作业请求类型单一,且电梯数目确定,未使用调度器处理请求 MainClass:负责电梯的创建和输入线程的启动 InputThre
    WassuhJ   2022-05-01 10:41   0   35
  • 2022北航面向对象第二次作业分享及总结

    本次作业由三次子任务组成,从3月28号开始,迭代开发,实现了一个多线程实时电梯系统。本次项目是笔者第一次接触多线程开发,在迭代过程中逐步熟悉了多线程的设计方法。本文将会主要从架构设计、线程安全以及策略问题三方面进行分析总结。
    Chenkit^^   2022-05-01 00:56   0   105