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

  • BUAA_OO 第二单元

    第二单元博客作业 (1)同步块和锁 1.在三次作业中都使用了synchronized修饰方法的方式进行同步和加锁, 对共享对象的所有方法都进行了加锁设置. 2.为了确保输出的线程安全,对输出函数进行封装加锁. 3.为了满足能够对新输入请求及时相应,在电梯运行线程中对共享对象的某些操作进行了加锁处理,
    LJJ+   2022-05-03 21:09   0   20
  • BUAA_OO_2022 第二单元总结

    BUAA_OO_2022 第二单元总结 O.前言 ​ 本单元内容主要是关于多线程电梯的设计,从最初的单向纵向电梯逐步迭代到可支持换乘、可定制电梯。个人认为其中的设计重点和易错点主要是共享对象和调度策略的设计。 一、三次作业架构 1.1 hw5分析 1.1.1 hw5 要求分析 ​ 本单元第一次作业,
    997ddler   2022-05-03 20:30   0   36
  • OO第二单元总结

    Unit 2总结 一、第一次作业 本次作业采用生产者-消费者的架构,整个电梯系统主要由总调度器(Scheduled)、输入线程(InputThread)、电梯线程类(Elevator)、等待队列(PassengerQueue)构成。大致的实现过程包含以下两级: 1、InputThread——wait
    欧德要斯   2022-05-03 19:46   0   9
  • BUAA OO 第二单元总结

    BUAA OO 第二单元总结 同步块与锁分析 第五次作业中,我设计了一个线程安全的类OrderQueue,在这个类中,存在请求队列与候乘表,数据相关的类,通过分别加锁保证了请求队列和候乘表的线程安全与并行性能。而因为这个封装好的类,在外部不需要考虑线程安全问题,只需要使用OrderQueue就行,保
    MrSisyphus   2022-05-03 18:47   0   11
  • 2022 BUAA OO 第二单元总结

    第一次作业 设计思路 基本结构为生产消费者模型,输入线程生产request,电梯消耗request。在我的第一次作业中主要遇到了两个难点。一个是调度策略,另一个是电梯怎么获得request的设计。 调度策略方面,最开始看了look但没完全理解,导致写的过程比较困难并且最后写出来还是错的。按我的写法电
    一只pc   2022-05-03 18:20   0   23
  • OO第二单元作业总结与心得

    第二单元作业总结与心得 1. 作业架构设计简述 这一单元的作业没有经历过大的重构。但由于前两次作业的架构在线程设计上的考虑不够全面,第七次作业在并行架构上做出了堪比重构的丑陋的增量开发(或许也称不上增量开发了)。 这一部分将简述作业代码的整体架构,不涉及并发部分与电梯的调度实现,这些内容将在后两个部
    hyc140   2022-05-03 17:18   0   6
  • [BUAA OO]第二单元总结

    [BUAA OO]第二单元总结 序.写在前面 ​ 本单元我们要面对的任务是以电梯为载体的多线程问题,要求我们掌握多个线程的调配、线程之间的交互、cpu时间的合理分配,具体的作业要求为建立一个多线程电梯运行系统,实现对乘客的接送运载,具体的数据限制如下: ​ ● 第一次作业,A、B、C、D、E座各有一
    Jack_rbkd   2022-05-03 17:10   0   17
  • BUAA-OO-Unit2总结:电梯的进化

    回首三次作业,有种我竟然做了这些事的感慨。为解决自由市场无序竞争的弊端,建立了预分配制度,由总调度器统一规划人员请求。统一规划大处落笔,对于细节的把控有限,可能存在一定程度的分配僵化,为此引入抢夺机制,允许先送完人员的电梯主动帮助未完成的电梯完成任务。设计了流水线上、主从模式的线程管理,使用带路径压
    Barque   2022-05-03 15:14   0   30
  • OO第二单元作业总结

    OO第二单元作业总结 第二单元我们在第一单元单一进程面向对象的设计基础之上,进一步学习和练习使用了多进程。 目标是模拟多线程实时电梯系统,熟悉线程的创建、运行等基本操作。 第五次作业 题目描述 大楼有 A,B,C,D,EA,B,C,D,E 五个座,每个楼座有对应的一台电梯,可以在楼座内 1-101−
    BessiePei   2022-05-03 13:44   0   39
  • OO第二单元博客

    OO第二单元博客 第一次作业 1 整体架构 ​ 本次作业的UML图如下所示: 2 需求容器设计 ​ 本次作业中,每个楼座都由一个对应的RequestTable。每个RequestTable中,按照出发楼层将需求分别存放在10个队列中,这10个队列则由一个HashMap存储,其中Key是楼层,Valu
    h_bh   2022-05-03 11:11   0   9