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

  • OO第二次总结

    OO第二次总结 一、架构设计体验 本次作业的主要目的,是实现一个多楼座(A,B,C,D,E)、跨楼座运行,支持换乘,调度等功能的多线程电梯。 对于该问题,我主张采用经典的生产者-消费者模型。从Person类出发,构建了相应的共享资源,Table,Dispatcher等等。 线程及同步控制块与锁 在这
    carkham   2022-05-02 09:21   0   14
  • 第二单元总结

    第二单元总结 1. 作业分析 模拟多线程实时电梯系统,支持换乘。 2. 架构设计 对每个楼层、每个楼座单独构建一个等待队列(PassengerGroup的实例),5个座、10层,共构建15个等待队列。每个等待队列负责该楼层或楼座的全部乘客,该楼层或楼座的所有电梯共享一个等待队列。 Controlle
    StyWang   2022-05-02 01:45   0   22
  • BUAA-OO-Unit2

    OO_UNIT2 一、作业分析及多线程编程 本单元的作业要求我们使用多线程的方式来实现电梯系统,即在同一时间内实现多部电梯对于多个请求的响应。 在多线程的编程实现中我们理想化的结果是多个线程并行运行的过程中能够对于共享对象进行安全的操作,最终实现线程安全的基础上实现更高效率。 由上面的描述我们已经可
    SKiToul   2022-05-01 23:31   0   28
  • BUAA-OO2022-UNIT2总结

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

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

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

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

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