-
BUAA_OO_2022第二单元总结
一、作业分析 本单元作业的目标是模拟多线程实时电梯系统。 第五次作业 A-E座每层单部电梯,电梯可以在1-10层运行。 1.总体架构设计 本次作业设置了总共4个线程类,分别为主线程,输入线程,调度器线程和电梯线程。由于每座单部电梯,调度器的设计较为简单,无特殊调度策略。电梯调度使用LOOK策略,策略 -
面向对象设计与构造2022第二单元总结
第二单元博客作业 一、总结分析三次作业中同步块的设置和锁的选择,并分析锁与同步块中处理语句之间的关系 对多线程的学习理解中,我认为锁与线程之间的最为重要的关系就是: 线程因共享对象被其他线程掌控而被阻塞,线程主动放弃共享对象的掌控权而wait,线程因共享对象被其他线程释放而唤醒 所以,共享对 -
BUAA-OO-U2-Summary
BUAA-OO-U2-Summary 1 问题描述 本单元任务主要是实现一个多线程的电梯调度系统。 实际场景是BUAA新主楼的 A B C D E 五个座,每个座均有10层,楼座按顺序构成一个环; 其间存在两种电梯:横向(同一层,不同座间移动) 和 纵向(同一座,不同层间移动),电梯的移动速度,载客 -
OO第二单元总结
第五次作业分析 第五次作业是多线程单元的第一次作业,总体难度不大,对多线程的使用要求也较低,我们只需要设计一个输入线程,分发线程(scheduler),和电梯线程即可完成任务。 而为了能够使三者配合起来完成任务,我们需要利用到一个请求队列作为共享对象。基本思路是一个电梯对应的一个他需要处理的队列,电 -
BUAA_OO_2022 Unit2 总结
BUAA_OO_2022 Unit2 总结 单元总览 本单元的主题是多线程,基于真实的电梯调度场景,学习了基于线程、共享、交互的面向并发和协同抽象的层次设计结构,重点关注并发行为的安全和效率。 此外,我们还学习并实现了生产者-消费者模型、单例模式、黑板模式、流水线模式等,对于面向对象的设计模式有了更 -
OO2022第二单元作业总结
OO2022第二单元作业总结 三次作业同步块的设置和锁的选择 三次作业中前两次我主要用到的就是synchronized锁,第三次作业还尝试了ReentrantReadWriteLock读写锁 我加锁的地方主要集中在可能用到的共享变量上,由于我使用了生产者-消费者模式,输入线程输入请求到缓冲队列,调度 -
第二单元博客作业
第二次博客作业 uml图 流程控制 线程配合 主要线程 功能 InputThread 获取输入线程:获取输入的电梯请求和乘客请求,并分别存储到ElevatorRequestList与PersonRequestList中。 ElevatorAddThread 电梯增加线程:提取ElevatorReuq -
#BUAA-面向对象设计与构造 ——第二单元总结#
魔幻电梯月终于结束辣! 第二单元主题 第一次作业: 需求: 给出乘客出发楼座,出发楼层,到达楼座,到达楼层,将该乘客送达至目的地 一共有五台电梯,分别对应五个座ABCDE 每个座的电梯在1-10楼间运行,初始都在楼座的1层 限乘人数:6 人 满足上下行,开关门,乘客进出 保证在电梯系统时间不超过系统 -
BUAA OO BLOG UNIT2
BUAA OO UNIT2 BLOG 摘要: Narrowly escape from Elevator Unit...... 度过愉快的电梯单元,对多线程的设计有了很深的体会。多线程的设计,主要还是聚焦于多线程设计模式的使用、线程安全、轮询(wait-notify机制)几个方面(电梯调度策略像是买 -
BUAA-OO第二单元总结
1、总述 第二单元我们学习了 java 多线程,通过模拟多线程实时电梯系统,掌握了线程之间的交互、多线程中可能存在的线程安全问题以及生产者-消费者、单例模式、观察者模式、流水线模式等多线程协同的设计模式,在三次作业的迭代过程中不断强化线程之间的协同设计层次架构。 2、电梯调度设计 三次作业都