-
OO2022第二单元作业总结
OO2022第二单元作业总结 三次作业同步块的设置和锁的选择 三次作业中前两次我主要用到的就是synchronized锁,第三次作业还尝试了ReentrantReadWriteLock读写锁 我加锁的地方主要集中在可能用到的共享变量上,由于我使用了生产者-消费者模式,输入线程输入请求到缓冲队列,调度 -
第二单元博客作业
第二次博客作业 uml图 流程控制 线程配合 主要线程 功能 InputThread 获取输入线程:获取输入的电梯请求和乘客请求,并分别存储到ElevatorRequestList与PersonRequestList中。 ElevatorAddThread 电梯增加线程:提取ElevatorReuq -
面向对象设计与构造第二单元博客作业
面向对象设计与构造第二单元博客作业 第五次作业总结 作业需求 模拟一个多线程实时电梯系统,每个楼座有对应的一台电梯,可以在楼座内 1-10层之间运行且乘客的请求均为同楼座。 代码架构 各个类的含义如下: |- Main:主类|- Producer:读入线程|- Request:读入线程与调度器交互的 -
#BUAA-面向对象设计与构造 ——第二单元总结#
魔幻电梯月终于结束辣! 第二单元主题 第一次作业: 需求: 给出乘客出发楼座,出发楼层,到达楼座,到达楼层,将该乘客送达至目的地 一共有五台电梯,分别对应五个座ABCDE 每个座的电梯在1-10楼间运行,初始都在楼座的1层 限乘人数:6 人 满足上下行,开关门,乘客进出 保证在电梯系统时间不超过系统 -
BUAA OO BLOG UNIT2
BUAA OO UNIT2 BLOG 摘要: Narrowly escape from Elevator Unit...... 度过愉快的电梯单元,对多线程的设计有了很深的体会。多线程的设计,主要还是聚焦于多线程设计模式的使用、线程安全、轮询(wait-notify机制)几个方面(电梯调度策略像是买 -
BUAA-OO 第二单元总结
BUAA-OO 第二单元总结 一、锁与同步块 (一)多线程安全性 为什么这单元作业需要使用多线程?因为我们有多部电梯,需要允许它们同时运作;同时,在等待需求输入时也要允许它们运作。这种业务上的需求使得我们必须使用多线程来完成这单元作业。 尽管多线程带来了很多好处,但是使用不当,很可能出现线程安全问题 -
面向对象第二单元总结回顾
面向对象第二单元总结回顾 一、写在前面 本单元要求使用多线程实现电梯调度,响应乘客的移动请求。 基于五楼座-十楼层的场景,在三次迭代开发中,电梯系统逐渐能完成:接送上下移动的乘客、接送横向移动的乘客、接送任意移动的乘客、动态增加电梯、定制电梯等功能。 本单元的核心是多线程,输入输出、电梯调度和电梯运 -
BUAA面向对象2022第二单元总结
BUAA面向对象2022第二单元总结 总览 作业内容 本单元的主要作业内容为电梯调度,共有3次作业,为迭代开发。 第一次作业为纵向电梯调度。 第二次作业增加了横向电梯,但乘客均能一次到达目的地。 第三次作业加入需要换乘的乘客请求。 完成情况 我采用了生产者-消费者模式,通过调度器向各个电梯分 -
北航oo第二单元博客作业
北航oo第二单元总结 同步块的设置和锁的选择 在三次作业中,我都是使用了synchronized同步块,并且我对共享对象的方法均进行了同步,这种做法的好处比较简单,同时也能够避免线程安全的问题,保证线程安全。但这样自然也会使得程序的运行比较缓慢,有较大提升的空间。以下是共享对象中上锁的方法: pub -
BUAA-OO第二单元总结
1、总述 第二单元我们学习了 java 多线程,通过模拟多线程实时电梯系统,掌握了线程之间的交互、多线程中可能存在的线程安全问题以及生产者-消费者、单例模式、观察者模式、流水线模式等多线程协同的设计模式,在三次作业的迭代过程中不断强化线程之间的协同设计层次架构。 2、电梯调度设计 三次作业都