首页
Python
Java
IOS
Andorid
NodeJS
JavaScript
HTML5
【
OO_多线程电梯_单元总结
】的更多相关文章
OO_多线程电梯_单元总结
概述: 面向对象的第二单元是多线程电梯.第一次实现一部傻瓜电梯,每次只送一个人:第二次实现一部可稍带电梯:第三次实现三部可稍带电梯. 一.设计策略 1.第5.6次作业设计思路 第5.6次作业的架构相似,由一个电梯线程,一个读请求线程,一个调度器组成:电梯和读请求进程通过调度器交互. 读请求线程不断的从标准输入读入请求,将请求存放在调度器的队列中: 电梯线程从调度器中获取请求并执行. 调度器维护一个共享队列,用来存放请求. 读请求线程和电梯线程并发执行,二者对调度器中队列的操作保证互斥,同一时刻只…
OO第二单元多线程电梯总结
OO第二单元多线程电梯总结 第一次作业 设计思路 Input为输入线程,负责不断读取请求并将读到的请求放入调度器中. Dispatcher为调度器,是Input线程和Elevator线程的共享对象,采用单例模式.Dispatcher中list为请求队列,over为输入线程结束的标志,当输入线程读到null时,将over设为true. Elevator为电梯线程,采用傻瓜调度(FAFS). 代码分析 SOLID原则分析 Input线程负责输入,elevator线程负责取指令执行的单一负责线程比较好…
OO_Unit2 多线程电梯总结
OO_Unit2 多线程电梯总结 相比于Unit1的表达式求导,Unit2的多线程电梯听上去似乎显得更加"高大上".但在完成了3个task的迭代后再回过头去比较这两个单元,我发现其实它们的侧重点并不相同:Unit1要更偏重于横向的架构设计,如何实现性能与架构之间的平衡:而Unit2由于涉及了多线程,因此更多的难点与重点则放在了线程安全与同步上.故而单纯的从代码量上来看的话,Unit2似乎反而还要少一些,但这并不意味着Unit2的复杂度有所降低,相反,由于允许线程间时间上的无序性,一切反…
OO Unit2多线程电梯总结博客
OO Unit2多线程电梯总结博客 传说中的电梯居然就这样写完了-撒花…
OO_JAVA_JML系列作业_单元总结
OO_JAVA_JML系列作业_单元总结 (1)梳理JML语言的理论基础.应用工具链情况 简单梳理 以下三者是jml规格里的核心,对一个方法功能和属性的限制: requires子句:规定方法的前置条件(precondition): assignable子句:方法的副作用范围限定: ensures子句:规定方法的后置条件(post condition). 简单运用 采用OpenJML工具check第一次JML官方开源库代码得到如下结果: 对比第一次和第二次JML规格官方源码: 第一次: /*@ p…
OO_JAVA_表达式求导_单元总结
OO_JAVA_表达式求导_单元总结 这里引用个链接,是我写的另一份博客,讲的是设计层面的问题,下面主要是对自己代码的单元总结. 程序分析 (1)基于度量来分析自己的程序结构 第一次作业 程序结构大致如图: 结构比较简单,只有三个类,分别是Main,Polynomial和PolynomialItem. 方法复杂度分析如图: 可以见得:主要是类的构造方法和toString方法复杂度较高,因为要面面俱到. 第二次作业 程序结构大致如图: 程序结构比较简单,只有六个类. 方法复杂度如图: 可以见得:由…
BUAA_OO第二单元总结性博客作业——多线程电梯架构
一.设计策略 在第一次作业时,我刚第一次接触多线程这个东西……于是乎对于第一次VIP直上直下一次只接一个人的电梯,我借鉴了指导书中为我们提供的架构,设计了一个输入线程和一个电梯线程,并设置了一个中间类RequestQueue,开一个队列来存放异步输入的请求,并保证这个类是线程安全的.mian类之下的整体架构为“Getrequest-RequestQueue-Elevator”.在main类中仅仅只做了new了这几个类并且启动输入线程以及电梯线程的工作.当电梯运行时,GetRequest线程读入请…
2019年北航OO第二单元(多线程电梯任务)总结
一.三次作业总结 1. 说在前面 对于这次的这三次电梯作业,我采用了和几乎所有人都不同的架构:将每个人当作一个线程.这样做有一定的好处:它使得整个问题的建模更加自然,并且在后期人员调度变得复杂时,可以将调度器上纷繁的逻辑判断分布在不同的人身上,大大简化了代码逻辑.对于程序复杂度,将人作为某个容器中的PersonRequest时需要在电梯到达某一层时进行遍历,而将人作为线程池中的一个任务则是通过wait()和notify()机制实现了类似的线程遍历,对于此次最多40人的简单任务而言并不会在时间上损…
OO_JAVA_电梯运行模拟_单元总结
电梯运行模拟--三次作业总结 目录 电梯运行模拟--三次作业总结 总体遵循的设计思路 逻辑解耦 电梯与调度器解耦 楼层信息的存储和变更与电梯.调度器解耦 调度器运行流程解耦 第一次电梯,蠢笨串行先到先得电梯 类方法复杂度表 第二次电梯,可捎带无限容量电梯 第二次电梯运作原理图 类方法复杂度表 类复杂度表 第三次电梯,可达楼层.运行速度和容量均不相同的多电梯 第三次电梯运作原理图 类方法复杂度表 类复杂度表 第三次电梯的所有类图景 作业bug分析 多线程作业感想 总体遵循的设计思路 逻辑解耦 电梯…
OO第二单元总结——多线程电梯
第五次作业分析 1.设计策略 调度器采用单例模式,内部设请求队列,对请求队列的一切操作(查.增.删)都在调度器内完成,且都要求串行,从而确保线程安全.接收器和电梯是两个线程:接收器接受请求调用调度器来存入请求队列,接受器关闭时通知调度器:电梯调用调度器来获得请求,电梯从调度获得空请求且查询到接受器关闭时停止运行. 2.度量分析 (1)复杂度矩阵 方法复杂度: 类复杂度: 由于这一次作业是简单的单电梯傻瓜调度,所以方法和类复杂度都比较低. (2)类图 (3)协作图 3.bug分析 没有bug. 第…