-
BUAA_OO_2022 第二单元总结
OO 第二单元 电梯 总结 目录 一、三次作业分析 二、bug分析 三、心得体会 在第一部分将结合三次作业的uml类图,介绍每次作业的设计思路关键点、同步块与锁的选择以及调度器迭代,再展示最后的UML协作图。 在第二部分将介绍程序bug、hack和test策略。 在第三部分讲述心得体会。 一、三次作 -
BUAA_OO_第二单元总结
害羞羞,这多线程啊就喜欢开玩笑! -
oo第二单元总结
OO第二单元博客 写在前面: 本单元的主题是”电梯“,从第一次普通的电梯到第二次可以横向移动的电梯到第三次随便走的电梯。本单元相对于第一单元,减少了重构次数。第二三次作业都是在第一次的基础上进行迭代开发。(体现出架构选择的重要)同时也有被线程安全问题所折磨。总的来说主要进行了多线程开发,电梯调度算法 -
面向对象设计与构造第二单元博客作业
第一次作业总结 UML类图 UML协作图 架构与可扩展性分析 架构分析 本次作业采用了输入-调度-处理的结构。采用生产者-消费者模式,不同环节之间相互独立,仅通过共享托盘进行数据的传输。 复杂度分析 类的规模,类与方法的复杂度如上。 同步块的设置和锁的选择 全部统一使用了synchronize(ob -
BUAA_OO_Unit2
同步块与锁 在3次作业中,我只使用了同步块(synchronized),原因是同步块就完全可以解决共享数据安全问题,并且语法简单、固定并且性能也不差。而锁(lock)虽然更加灵活,但是在作业中并不必要,而且容易出错。 在3次作业中,存在共享数据安全问题的代码主要在"生产者—消费者"模式下的 一级托盘 -
OO第二单元总结
#多线程实时电梯系统 第一次作业 ##架构 ###InputThread 处理输入的线程 当收到的personrequest是null时,代表用户已经输入了^D,此时将五座大楼的等待序列设置finished并通知每座大楼,唤醒正在wait的线程。 若收到的request不是null,将会找到对应bu -
OO Unit2 Summary
OO Unit2 Summary 目录 一、三次作业分析 二、bug分析 三、心得体会 在第一部分将结合三次作业的uml类图,先分别介绍每次作业的设计思路、同步块与锁的选择以及调度器设计,再展示UML协作图。在第二部分将介绍程序bug、hack和test策略。第三部分讲述心得体会。 一、三次作业分析 -
2022-面向对象设计与构造-第二单元总结
2022-面向对象设计与构造-第二单元总结 第五次作业 架构分析 整体结构 本次作业我使用了生产者——消费者模式,ReqMaker作为生产者读取输入并包装成请求放入请求队列中,Elevator作为消费者从请求队列中获取请求并满足乘客的请求,UML类图如下 其中ReqMaker, Elevator继承 -
OOBeiHang Unit2 Report
The Elevator! 前言 造电梯的过程,仿佛比电梯本身,更有趣。 自由竞争与规划调度之争,也正是令人心动的自由。 目录 一、调度设计 调度方法 换乘策略 调度器与其他线程的交互 同步块与锁 二、整体架构与拓展过程 三次作业UML类图与多线程分析 拓展过程 拓展心得 未来拓展能力 三、结构分析 -
BUAA_OO_2022_Unit2_Summary
一、总结分析三次作业中同步块的设置和锁的选择,并分析锁与同步快中处理语句之间的关系 作业1: 同步块设置在dispatch类中,dispatch存放了输入线程和电梯线程之间的共享队列,其实质是电梯线程的外部请求队列。锁即dispatch类对象。同步块中处理语句,主要聚焦于外部请求队列的读和写,上锁就