-
BUAA_OO_Unit2_Summary
BUAA_OO_Unit2_Summary 目录 程序结构分析 第一次作业 第二次作业 第三次作业 度量分析 规模分析 复杂度分析 可拓展性分析 UML Bug分析与测试策略 Bug分析 测试策略 心得体会 一、程序结构分析 第一次作业 设计要求 模拟多线程实时电梯系统,五个楼座分别有且只有一部纵向 -
实验四
Task1-1 #include <stdio.h> #define N 4 int main() { int a[N] = {2, 0, 2, 2}; char b[N] = {'2', '0', '2', '2'}; int i; printf("sizeof(int) = %d\n", siz -
第四次实验
1. 实验任务1 task1_1 #include <stdio.h> #define N 4 int main() { int a[N] = {2, 0, 2, 2}; char b[N] = {'2', '0', '2', '2'}; int i; printf("sizeof(int) = % -
实验4 数组
task1_1.c #include <stdio.h> #define N 4 int main() { int a[N] = {2, 0, 2, 2}; char b[N] = {'2', '0', '2', '2'}; int i; printf("sizeof(int) = %d\n", s -
2022 OO 第二单元个人总结
2022 OO 第二单元个人总结 个人认为在本单元作业中,贯穿三次作业的难点有两个内容:线程安全与调度算法。 一、同步块的设置和锁的选择 1. 为什么设置锁、锁的选择 锁是用来保证线程安全的,对于共享对象,我们需要在其被使用时对其加锁,保证同一时间仅能对同一共享对象进行操作。 在第三次实验的指导下, -
第二单元总结
第二单元总结 前言 第二单元的作业主要围绕电梯接人而展开,通过完成第二单元的作业,我逐步理解了多线程存在的意义,本单元的难点在如何解决线程安全问题以及选择什么调度策略上。线程安全与程序正确性相关,调度策略与程序性能相关。在架构中,我采用了生产者-消费者模型,并在后续作业中将其扩展成为了食物链模型,调 -
BUAA_OO_2022 Unit2 总结
BUAA_OO_2022 Unit2 总结 一、第五次作业 1、同步块的设置和锁的选择 这是第一次写多线程的程序,所以对此还比较陌生,于是向上机代码学习了一波,并偷懒躲开了一些问题。线程分为了输入线程,电梯线程和调度器线程。在我的第一次作业中,输入线程和调度器线程共享一个总的请求队列,调度器和五部电 -
oo第二单元总结
oo第二单元总结 PART 1 同步块构造与选择 本单元我们进入了多线程的世界,最重要的一个概念的就是同步锁,本单元作业均选取了synchronized锁,最开始我是有尝试在电梯的属性中设置synchronized,而这样的尝试让我连着四次失败,由此我借鉴了实验3的代码架构,简单地将传送带的所有 -
OO第二单元总结
OO第二单元总结 一、程序设计架构 总体架构 三次作业总体架构保持一致,在初始架构的基础上进行增量的迭代开发。 第一次作业 需求:模拟多线程实时电梯系统,每座固定一部纵向电梯,处理同楼座移动请求。 代码框架: 本架构采用生产者-消费者设计模式,托盘为各楼座等待队列,为每座定义了两条等待队列,根据起点 -
BUAA_OO_Unit2总结
本单元作业主要考察多线程之间的协作,主要的难点在于多线程的控制,需要保证临界资源的安全性。 一、第一次作业 1、类图 2、调度器设计 调度器基本采用了als策略,但主请求的选择稍有不同:在电梯没人时,将等候队列的第一个乘客作为主请求,电梯向着主请求方向运行。 调度器线程通过共享对象Warehouse -
OO第二单元总结
OO第二单元总结 一、作业介绍 (一)作业背景及迭代 本单元的核心是模拟多线程实时电梯系统,总共有A~E五栋楼,各拥有10层。要求设计一个电梯调度系统,采用一定的调度策略,用以实时响应可以在任意时间发出的电梯搭乘请求,具体需要模拟实现电梯的上下行、开关门以及进出人。 三次作业介绍 第一次作业:五 -
OO_第二单元总结
第一次作业 乘客的请求信息:起点层和终点层不同,起点座和终点座相同。如1-FROM-A-1-TO-A-2 思路:采用LOOK策略。若同方向上没有请求且电梯里的乘客的目的地都在反方向,则转换电梯运行方向。(捎带前往目的地与电梯运行方向相同的乘客) UML类图 自己程序的bug 输出时间戳没递增。 第二 -
BUAA_OO_第二单元总结
OO第二单元总结 第二单元作业是完成电梯的设计。 第一次作业是完成简单的五栋楼单部可搭乘电梯的设计;第二次作业增加了横向电梯,且电梯数目可增加;第三次作业增加了换乘请求。 一、架构与调度器设计 第一次作业 架构 最初做第一次作业的时候,由于对多线程知识不够了解,所以在尝试了好多次优化失败之后,还是交 -
「BUAA OO Unit 2 HW8」第二单元总结
「BUAA OO Unit 2 HW8」第二单元总结 Part 0 前言 第二单元多线程已经告一段落,本单元中我收获颇丰,在这里再次总结记录。 本篇博客将分为以下几个部分,读者可自取所需: Part 1 第五次作业 Part 2 第六次作业 Part 3 第七次作业 Part 4 多线程心得体会 P -
BUAA OO 第二单元总结
BUAA OO 第二单元总结 〇.综述 在第二单元的三次迭代作业完成后,笔者认为本单元考察的重点主要有两个:1.以实际问题“电梯调度”为背景初识多线程问题,并对多线程中的线程安全问题着重考察;2.从实际场景中获取灵感调整调度策略,进一步体会“面向对象”思想在问题空间向解空间映射过程中发挥的巨大作用。 -
黄笑笑
-
弯刀划过红玫瑰,阿俊也曾留眼泪
1.段落首行缩进俩个字符,标题加粗 居中,先进个人和20000元改为红色字体并加粗,最后一段右对齐 效果图如下 2.标题居中对齐加粗文字更改字号,会议议题和会议结果添加底纹,添加编号和项目符号,雨蓝公司.....改为红色字体加粗,最后两段右对齐,效果图如下 3.标题居中 加粗更改字体样式和字号,添加 -
面向对象第二单元作业总结与反思
面向对象第二单元作业总结与反思 前言: 第二单元作业也结束了,到此为止OO课算是完成了一半。本单元是整个课程较难的一部分,当然相对地也有很多收获,需要好好总结。首先我会介绍这一单元作业的总体设计思路,对于每次作业,阐述具体的架构与代码实现,解释每个类的设计考虑,并展示整个项目的类图与时序图。之后对我 -
BUAA_OO_第二单元总结
(1)总结分析三次作业中同步块的设置和锁的选择,并分析锁与同步块中处理语句之间的关系 锁统一选择了sycronized,同步块设置在了三个地方。 第一个是放在了queue这个共享对象里边,以此来保证线程安全。 第二个是输出类output里面,以此来保证输出线程安全。 第三个是全局调器类里面。 同步块 -
OO Unit-2 Summary
OO Unit-2 Summary 第一次作业 同步块的设置和锁的选择 在本单元的作业中,我选择了以JVM实现的synchronized作为锁。用生产者和消费者模式对应本单元的作业,可以发现,共享的“托盘”只有电梯的等待队列,一方面,输入处理线程要将新的请求放入等待队列,另一方面,电梯不断读取处