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

  • [BUAA OO]第二单元总结

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

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

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

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

    一、同步块的设置和锁的选择: 关于 synchronized : 大概的使用方法有这两种。 synchronized(this){ // 同步代码方法块 } synchronized void method() { //method 具体实现 } 关于 lock : 大概的使用方法以及接口的实现类:
    乌拉圭的袋鼠   2022-05-03 10:54   0   43
  • BUAA_OO_Unit2 线程安全设计总结

    BUAA_OO_Unit2 线程安全设计总结 一、综述 ​ 面向对象课程的第二单元的主题是利用多线程设计来模拟电梯的调度和运行。这一单元主要考察我们对并发和多线程的理解,基于共享、交互的面向并发和协调的层次设计能力,以及最重要的维护并发行为的安全设计能力。 ​ 本单元共三次作业,每次作业都是在上一次
    薛定谔的猫SC   2022-05-03 10:44   0   26
  • BUAA_OO_2022 第二单元总结

    面向对象设计与构造 第二单元总结 总述 第二单元主要是Java多线程的实现,自我感觉第二单元的作业比第一单元的实现轻松不少,但每次作业最终的实现效果并不十分让人满意。虽然有过在debug过程中找不到CTLE和RTLE错误原因的"坐大牢"环节,但最后我发现多线程问题的解决主要还是对线程的理解和对调度方
    tiderem   2022-05-03 10:37   0   13
  • OOUnit2

    OOunit2总结博客 (1)总结分析三次作业中同步块的设置和锁的选择,并分析锁与同步块中处理语句之间的关系 作业中同步块都在共享对象中的方法,共享对象实现如下接口: public interface Queue { void addRequest(Request request);//添加成员 v
      2022-05-03 03:04   0   23
  • BUAA OO 第二单元 总结报告

    一、第二单元电梯作业设计思路 初次接触多线程的问题,对于作业的设计思路一开始比较迷茫,后来通过阅读上机实验的代码,觉得采用“生产者-消费者”的模式比较合适,遂模仿实验的思路设计了InputHandler、Schedule、RequestQueue来进行输入数据的实时处理和调度,事实证明这一架构模式的
    Sainthousand   2022-05-03 00:52   0   35
  • OO第二单元总结

    第二单元总结 锁和同步块 主要利用了synchronized锁和Controller调度器解决线程数据冲突问题. 本次作业由于直接将人分配到楼座且一个楼座仅有一个电梯就无需考虑删除人时的读写冲突. 调度器设计 controller内部掌管NewMainBuiding类包含了所有楼座的信息,通过get
    爱学习的拾柒   2022-05-02 23:18   0   12