首页 > TAG信息列表 > Unit2

BUAA OO Unit2 Summary

零、写在前面 https://www.cnblogs.com/GrapeLemonade/p/14702876.html 初听不知曲中意,再听已是曲中人。 一、同步块与锁 锁的选择 在本单元作业中,我全部采用了JVM层面的synchronized关键字对同步块进行加锁。虽然在后期的理论课和上机实验中也引入了lock读写锁——在资源竞争很

BUAA OO Unit2 —— Multithreading Elevator

BUAA OO Unit2 —— Multithreading Elevator by Monument_Valley 0. 写在正文前 本篇博客是对笔者在北航2022年春季《面向对象设计与构造》课程第二单元的三次作业的总结。 本单元的主要任务为通过程序模拟一套多线程运行的电梯系统,并为输入的乘梯请求作出合理的响应,即在不违反电

『BUAA-OO-Unit2-Summary』

『BUAA-OO-Unit2-Summary』 Homework5 0. 写在前面 由于没有看清DDL,导致本次作业卡点提交未能成功通过。(悲) 作为多线程编程的初学者,我认为本次作业的难点有三: wait()/notify()的使用; 共享对象类的构造; 调度策略的代码实现; 接下来,我将对本次作业的实现过程进行一个大致的复现,并对

2022-OO-Unit2

2022-OO-Unit2 mashiroly 1. 总体思路 ​ 本单元的需求是模拟多部电梯的调度,重在设计出多线程安全并发协作的架构。基本思路仍是“生产者-消费者”(Producer-Consumer)模式,固定“生产者”和“消费者”,面对不同功能构造不同“盘子”。电梯的运行策略经历了ALS策略到LOOK策略的迭代

BUAA_OO_Unit2 总结

BUAA_OO_Unit2 总结 一、电梯架构分析 (一)第五次作业 1 整体架构分析 需求分析 本单元作业需要完成多线程的电梯调度程序,而本次作业仅需要支持上下行一种电梯和同座间换层指令的需求。 整体架构 本次作业采取输入线程和电梯线程两个线程,其中输入线程负责从控制台获得指令并分配到各

BUAA_OO_Unit2_Summary

BUAA_OO_Unit2_Summary 目录 程序结构分析 第一次作业 第二次作业 第三次作业 度量分析 规模分析 复杂度分析 可拓展性分析 UML Bug分析与测试策略 Bug分析 测试策略 心得体会 一、程序结构分析 第一次作业 设计要求 模拟多线程实时电梯系统,

BUAA_OO_2022 Unit2 总结

BUAA_OO_2022 Unit2 总结 一、第五次作业   1、同步块的设置和锁的选择   这是第一次写多线程的程序,所以对此还比较陌生,于是向上机代码学习了一波,并偷懒躲开了一些问题。线程分为了输入线程,电梯线程和调度器线程。在我的第一次作业中,输入线程和调度器线程共享一个总的请求队列

BUAA-OO-Unit2 总结与反思

第五次作业 代码架构 我的代码种设计了两类线程,电梯线程Elevator和输入线程InputThread 每个电梯线程与输入线程之间有独立的共享对象RequestQueue,从而避免两个线程之间直接交互造成线程安全问题 输入线程与等待队列之间采用观察者模式,输入线程作为被观察者,等待队列为观察者,接到

OO_Unit2_blog

第二单元博客 1 同步块的设置和锁的选择 1.1 锁的选择   第二单元第一次课讲了synchronized上锁的方法,而之后的课程中又讲了ReentrantLock高级锁。尽管ReentrantLock可以实现更多的线程控制功能,但是考虑到相对来说使用synchronized代码实现比较容易并且不容易出错,因此三次迭代

OO_Unit2_单元总结

OO_Unit2_单元总结 Part0 综述 本单元三次电梯作业依然是在逐次迭代的基础上进行开发的。其中第一次作业要求我们实现一个每座只有一个纵向电梯,无新增加电梯的请求并且乘客的请求仅限于同楼座不同楼层的电梯系统。第二次作业相较于第一次作业添加了横向电梯的概念,并且可以通过请求

BUAA OO Summary - Unit2

第二单元总结 第二单元的作业,由于我在最开始设计架构的时候投入了较多时间,很多地方都考虑了后续作业可能需要拓展的地方,所以我的三次作业整体架构几乎没有什么变动。 整体上采用了生产者与消费者模式,将输入类、调度器类、电梯类继承Thread,GeneralQueue和WaitingQueue则是线程安

BUAA-OO-UNIT2-Elevator

第一次作业: 同步块设置与锁的选择: 第一次作业相对比较简单,需要实现一个纵向的电梯调度问题。 我将电梯和输入请求都当作线程进行处理,将请求队列作为中间的交互通道,将请求队列中的增加请求、得到请求等操作加锁。这样就可以实现线程安全的交互。 调度器设置: 第一次作业由于只有直上

BUAA_OO_Unit2_多线程

OO_Unit2_多线程 一、同步块 与 锁 在本次实验中,仅使用了如下两种形式进行同步:  //format 1 synchronized (lock) {  // code block } //format 2 try {     lock.wait(); } catch (InterruptedException e) {     e.printStackTrace(); } //in other code bloc

BUAA_OO_2022 Unit2 总结

BUAA_OO_2022 Unit2 总结 单元总览 本单元的主题是多线程,基于真实的电梯调度场景,学习了基于线程、共享、交互的面向并发和协同抽象的层次设计结构,重点关注并发行为的安全和效率。 此外,我们还学习并实现了生产者-消费者模型、单例模式、黑板模式、流水线模式等,对于面向对象的设计模

BUAA-OO-Unit2-单元总结

BUAA-OO-Unit2-单元总结 目录BUAA-OO-Unit2-单元总结一、锁与同步块1、线程选择2、锁和同步块的设置二、调度器设计1、调度器数据结构分析2、调度器功能结构分析第五次作业主要功能设计第六次作业主要功能改动第七次作业主要功能设计拆分策略算法代价函数设计三、架构分析第五次作

BUAA_2022_OO_Unit2总结

2022_OO第二单元总结 一、架构分析 1.homework5 简单的生产者消费者模型 UML类图:   hw5没有做过多的要求,五个座的电梯都是独立运行,比较简单。一开始我也是按照输入->调度器->电梯进行的架构,但是后来发现调度器实际上就是根据指令的座号分配到相应的队列中,没有起到调度的作用,而

BUAA-OO-Unit2-Elevator-Summary

第二单元作业总结--目标选层电梯调度 目录第二单元作业总结--目标选层电梯调度一、架构设计及UML1、第一次作业2、第二次作业3、第三次作业4、UML协作图5、扩展可能二、线程安全控制1、设计模式2、线程安全类三、调度器设计1、纵向电梯调度2、横向电梯调度3、请求拆分方式4、程序

BUAA_2022_OO_Unit2总结

OO Unit2总结 题目概述 本单元作业任务为实现一个模拟多线程的电梯调度系统。 HW5为迭代的基础:多部纵向非换乘电梯。具体为基于一个类似北京航空航天大学新主楼的大楼,大楼有 A,B,C,D,E五个座,每个楼座有对应的一台电梯,可以在楼座内 1-10 层之间运行。系统从标准输入中输入请求信息,

BUAA OO Unit2总结

BUAA OO Unit2`总结 1 第五次作业 1.1 同步块的设置和锁的选择 第五次作业中我的锁主要设在ReqQueue类和Output类,Output类是为了防止输出线程不安全的问题出现,此处不必赘述。ReqQueue类中为了防止线程安全问题出现,我在方法上加了锁,同一时刻只允许一个线程访问ReqQueue这个对象。

unit2

divide division dividend pension divorce diffuse refuse confuse discard discriminate discourse clarity distort dissolve solve solution resolve resolution resolute dilute filter melt distribute attribute contribute tribute tribe tribal distinguish extingui

Unit2 Preparing for a negotiation

General English:9-intermediate Unit2 Preparing for a negotiation Vocabulary Business vocabulary Collocations 搭配 upgrading vendor productive crash negotiate standard model memory hard drive budget outsourcing 外包 conserve 养护 JOAN Okay,Let's get

OO unit2 summary

Unit2 一、第一次作业 1.UML 2.Sequence Diagram 3.同步块设置与锁处理 采用了生产者-消费者模式,用共享对象来连接不同的线程。 第一次作业中,我有三个线程:Receiver,Manager,Elevator,用PersonQueue WaitingQueue分别来连接Receiver和 Manager,Manager和Elevator 整个程序中

OO Unit2 单元总结

BUAA OO UNIT2 (1)总结分析三次作业中同步块的设置和锁的选择,并分析锁与同步块中处理语句直接的关系 在本次作业中,我通过共享 乘客队列 的方式来进行线程间的通信。 为了保证线程安全,在每次访问共享的变量时,都会通过 synchronized 关键字来进行同步控制。(为了安全起见,我没有使用不

BUAA OO UNIT2 目的选层电梯单元总结

BUAA OO UNIT2 目的选层电梯 单元总结 同步块&锁 hw5 类 Qu Rlist Elv ElvMotor IN run() Trans Close(), tr(), run() Rlist add(), done(), qry(), poll() Elv setClsd(), add(), done(), redir(),port(), run() redir(), port(), wk(), run() ElvMot

BUAA_OO(2020)_Unit2_Summary

一、多线程的协同和同步控制方面的设计策略 得益于第一次作业架构设计的足够强大并且留下了充分的接口,后续两次作业基本只是小调整加优化调度策略而已,所以以下三次作业均不做区分叙述,三次作业线程间均采用了异步通信的设计策略,好处在于没有共享资源,避开了锁与同步控制的麻烦,数据拷