-
BUAA_OO第二单元总结
第二单元作业总结 一、整体架构设计 (注:输出类仅仅是对原有输出方法进行了封装,以下未单独列出。) 1.1 第一次作业 本次作业参考了实验课上的架构: 主线程main设置初始变量、创建类、启动线程。 输入线程input专门处理输入请求,并将该请求传入主调度类。 主调度线程schedule处理来自输入 -
面向对象课程第二单元博客总结
单元总览 本单元我们学习了Java多线程。通过电梯这一现实情景,体会了如何利用多线程机制完成多个并发任务以提高CPU利用率;对于线程安全有了一定概念,在实践中认识到多线程使用共享数据会面临的数据安全问题,并学会了使用同步块和锁来设计线程安全的程序。 与此同时,我们还学习并实现了生产者-消费者模型、单 -
OO_UNIT_2 总结
OO_UNIT_2 总结 HW5 需求分析 实现基本的电梯运行模拟,电梯种类单一(有且仅有纵向电梯),速度统一,载客容量统一,不可新增电梯;乘客需求,局限于同一楼座不同楼层,不存在跨楼座需求。 架构设计 1.乘客:Passenger // 乘客id private Integer id; // 乘客 -
BUAA OO第二次作业总结
OO第二单元总结 概况 第二单元的主要任务是模拟多线程实时电梯系统,第一次作业中,各个电梯之间没有任何联系。而在第二次作业和第三次作业中,由于我采用的是自由竞争策略,相同类型的电梯之间需要共享同一个候程队列,故各个电梯线程之间增加了协同处理关系。在第二次作业在第一次的基础之上中增加了横向电梯,故我们 -
BUAA_OO 第二单元总结——电梯
前言 第二单元的主要内容是多线程电梯的搭建,难度不大,关键在于对于多线程的理解以及对锁synchronize的使用上要多加注意。加锁这块还是很有意思的,我在第三次作业加锁那部分卡了很久,才明白了锁怎么加的。 第二次作业的代码量以及难度无疑小了很多,这单元的第一次作业(164行)写完了之后回顾上一的第 -
OO第二单元作业——电梯系统调度
OO第二单元作业——电梯系统调度 一、总体设计架构 OO课程第二单元的主题为电梯系统的设计。这个电梯系统包含了A,B,C,D,E五个楼座和1~10十个楼层。对于每一位请求乘坐电梯的乘客,需要有电梯将该乘客从其出发地点运送到目的地。由于多部电梯在同时运行,我们需要采用多线程的编程模式来设计电梯调度系统 -
BUAA-OO-第二单元总结
北航计算机学院面向对象第二单元总结 一、第一次作业总结 UML类关系图 UML类协作图 同步块的设置和锁的选择 第一次作业架构简单,采用两级生产者-消费者模式,其一为Input-Dispatcher组合,其二为Dispatcher-Elevator组合。因此涉及到的共享数据只有两个组合分别共用的托盘 -
OO第二单元实验总结报告
一. 同步块与锁 在本人的架构当中,共享对象是Controller,或者更准确的来说,是其中的waitQueue。在输入线程requestInput向其中添加请求,而Controller通过计算将相应的请求分发给Elevator。在这个过程中涉及到了对waitQueue的添加、遍历与删除,所以对它的 -
BUAA OO 第二单元作业总结
BUAA OO 第二单元作业总结 一、题目简介 此单元作业为模拟多线程实时电梯系统,第五次作业为模拟各楼座的纵向电梯,第六次作业模拟纵向和横向电梯,第七次作业增加乘客的换乘请求 二、架构模式 (一)第五次作业 各个类如下所示: |- MainClass:主类 |- Controller:电梯管理器, -
OO_U2总结
OO_U2总结 一、简介 本单元三个任务为电梯调度与迭代升级。第一个任务是简单的纵向电梯,每栋楼一座纵向电梯,载人数固定,速度固定,可以简单分解为五个电梯线程与一个生产者线程。第二次任务新增横向电梯,并且保证没有换乘且必定有电梯存在才会有请求。第三次任务为换乘处理,且可能出现多次换乘,调度器的必要性