-
BUAA_OO_2022第二单元总结
一、作业分析 本单元作业的目标是模拟多线程实时电梯系统。 第五次作业 A-E座每层单部电梯,电梯可以在1-10层运行。 1.总体架构设计 本次作业设置了总共4个线程类,分别为主线程,输入线程,调度器线程和电梯线程。由于每座单部电梯,调度器的设计较为简单,无特殊调度策略。电梯调度使用LOOK策略,策略 -
面向对象设计与构造2022第二单元总结
第二单元博客作业 一、总结分析三次作业中同步块的设置和锁的选择,并分析锁与同步块中处理语句之间的关系 对多线程的学习理解中,我认为锁与线程之间的最为重要的关系就是: 线程因共享对象被其他线程掌控而被阻塞,线程主动放弃共享对象的掌控权而wait,线程因共享对象被其他线程释放而唤醒 所以,共享对 -
2022面向对象第二单元总结
第五次作业 UML 类关系图 UML 类协作图 架构分析 生产者-消费者模式 第一级:RequestInput -> RequestQueue -> Dispatcher 用于输入线程和分派器线程之间的交互 第二级: Dispatcher -> RequestTable -> Elevator 用于 -
BUAA-OO-U2-Summary
BUAA-OO-U2-Summary 1 问题描述 本单元任务主要是实现一个多线程的电梯调度系统。 实际场景是BUAA新主楼的 A B C D E 五个座,每个座均有10层,楼座按顺序构成一个环; 其间存在两种电梯:横向(同一层,不同座间移动) 和 纵向(同一座,不同层间移动),电梯的移动速度,载客 -
OO第二单元总结
第二单元总结 1.同步块设置与锁的选择: 三次作业中基本都遵循生产者-消费者模式 第一次作业:因为第一次作业的结构较简单,故没有设置调度器,而是将Input线程直接通过传送带类与电梯相连.传送带类为TaskQueue类,其中有一个容器tasks装着所有的任务同时有end标记结束.put与get方 -
OO_Unit2
第二单元作业总结博客 第二单元的多线程作业也告一段落了。犹记得第一单元我的总结词汇是“灾难”,那么第二单元我的总结词汇就是“煎熬”。有多煎熬呢,大概就是林俊杰开口唱煎熬那么煎熬吧。光是第五次作业我就花了整整两周(整整两周的含义就是我扔掉了包括但不限于OS,离散数学,冯如杯等所有的工作,每天除了上课的 -
OO第二单元总结
第五次作业分析 第五次作业是多线程单元的第一次作业,总体难度不大,对多线程的使用要求也较低,我们只需要设计一个输入线程,分发线程(scheduler),和电梯线程即可完成任务。 而为了能够使三者配合起来完成任务,我们需要利用到一个请求队列作为共享对象。基本思路是一个电梯对应的一个他需要处理的队列,电 -
第二单元总结
本文共包括以下内容:同步块的设置和锁的选择、架构设计的变化和UML类图、调度器设计、自己程序的bug、发现别人bug采取的策略和心得体会。 -
BUAA_OO_2022 Unit2 总结
BUAA_OO_2022 Unit2 总结 单元总览 本单元的主题是多线程,基于真实的电梯调度场景,学习了基于线程、共享、交互的面向并发和协同抽象的层次设计结构,重点关注并发行为的安全和效率。 此外,我们还学习并实现了生产者-消费者模型、单例模式、黑板模式、流水线模式等,对于面向对象的设计模式有了更 -
OO第二单元总结
#一、程序架构分析 ##(一)、总体设计思路 第二单元的内容为多线程编程,具体任务为多个电梯的实时调度及交互。 在电梯调度方面,抽象出Strategy类,为每个Elevator对象都独立设置一个Strategy对象,用于确定电梯运行目标。具体实现,为每一部电梯设置一张工作表,表中每个元素为自定义的L