-
OO第二单元总结
OO第二单元总结 任务概述 本单元作业的任务目标是模拟多线程实时电梯系统,主要考察线程安全问题、多线程交互,以及多线程架构的协同设计方法和电梯调度方法。 第一次作业(hw5) UML类图 架构设计以及调度器设计 第一次作业采用了生产者消费者模式。MainClass主类初始化五部电梯、输入线程Inpu -
OO第二单元总结
第二单元总结 一、同步块和锁 本单元作业中,我全部采用了synchronized、wait()、notifyall()等操作来实现同步块和锁,并未采用lock等操作。主要原因是本单元第一次作业时,我只了解前者,而后两次作业中,我都只是对第一次作业的代码进行了部分修改、增量开发,并没有对原始架构、进程 -
第二单元总结
第二单元作业 这一次作业的主要内容是模拟电梯。第一次作业是简单的五部电梯,并且需要实现捎带;第二次作业则是加入了横向电梯,同时增加了加电梯的指令;第三次作业需要实现换乘,并且横向电梯加了开门楼座限制。 同步块设置和锁的选择 同步块设置 由于第一次作业中对多线程方面的知识还不太了解,因此直接参照课上实 -
面向对象第二单元个人总结
一、作业分析 本单元作业的目标是模拟多线程实时电梯系统。 第五次作业: 一共A-E五个楼座,每个楼座仅有一座纵向电梯。 第五次作业分别为主线程、输入线程、调度器线程和电梯线程。电梯采用LOOK策略,电梯运行的具体过程及策略在Process中进行,即先向上再向下,每次在一层或十层的时候便判断能够进行捎 -
BUAA_OO 第二单元
第二单元博客作业 (1)同步块和锁 1.在三次作业中都使用了synchronized修饰方法的方式进行同步和加锁, 对共享对象的所有方法都进行了加锁设置. 2.为了确保输出的线程安全,对输出函数进行封装加锁. 3.为了满足能够对新输入请求及时相应,在电梯运行线程中对共享对象的某些操作进行了加锁处理, -
BUAA_OO_2022 第二单元总结
BUAA_OO_2022 第二单元总结 O.前言 本单元内容主要是关于多线程电梯的设计,从最初的单向纵向电梯逐步迭代到可支持换乘、可定制电梯。个人认为其中的设计重点和易错点主要是共享对象和调度策略的设计。 一、三次作业架构 1.1 hw5分析 1.1.1 hw5 要求分析 本单元第一次作业, -
OO第二单元总结
Unit 2总结 一、第一次作业 本次作业采用生产者-消费者的架构,整个电梯系统主要由总调度器(Scheduled)、输入线程(InputThread)、电梯线程类(Elevator)、等待队列(PassengerQueue)构成。大致的实现过程包含以下两级: 1、InputThread——wait -
BUAA OO 第二单元总结
BUAA OO 第二单元总结 同步块与锁分析 第五次作业中,我设计了一个线程安全的类OrderQueue,在这个类中,存在请求队列与候乘表,数据相关的类,通过分别加锁保证了请求队列和候乘表的线程安全与并行性能。而因为这个封装好的类,在外部不需要考虑线程安全问题,只需要使用OrderQueue就行,保 -
2022 BUAA OO 第二单元总结
第一次作业 设计思路 基本结构为生产消费者模型,输入线程生产request,电梯消耗request。在我的第一次作业中主要遇到了两个难点。一个是调度策略,另一个是电梯怎么获得request的设计。 调度策略方面,最开始看了look但没完全理解,导致写的过程比较困难并且最后写出来还是错的。按我的写法电 -
OO第二单元作业总结与心得
第二单元作业总结与心得 1. 作业架构设计简述 这一单元的作业没有经历过大的重构。但由于前两次作业的架构在线程设计上的考虑不够全面,第七次作业在并行架构上做出了堪比重构的丑陋的增量开发(或许也称不上增量开发了)。 这一部分将简述作业代码的整体架构,不涉及并发部分与电梯的调度实现,这些内容将在后两个部