BUAAOO第二单元总结之电梯问题】的更多相关文章

---恢复内容开始--- Homework1 傻瓜电梯 程序架构 第一次题目非常简单,思考也非常简单,一部电梯傻瓜调度.将命令入公共的队列,电梯从公共队列中取命令即可,其中只需要使用ArrayBlockingQueue就可以使线程安全,并不需要加上锁,因为只有这个队列需要公共访问修改,使用阻塞队列即可. 同步控制 第一次作业结构简单,只需要使用ArrayBlockingQueue就可以实现同步控制. BUG的出现 1.使用电梯取队列命令时,若也使用阻塞取,就可能使整个线程阻塞而无法退出,因此我是…
OO第二单元--多线程(电梯) 综述 第二单元的三次联系作业都写电梯,要求逐步提高,对于多线程的掌握也进一步加深.本次作业全部都给出了输入输出文件,也就避免了正则表达式判断输入输出是否合法的问题. 第一次作业--单部电梯(无调度)论述 第一次作业,是写一部电梯的模拟器,指导书提供了一个极为基础或者说不叫算法的算法,只需要将人送到正确楼层即可,对于时间.性能没有任何要求,但也是我们第一次尝试多线程,开始写代码时对于wait(),notify()函数并不是十分了解,导致出现了各种线程不安全,或是出现…
第二单元多线程作业需要保证线程安全…
一.三次作业总结 1. 说在前面 对于这次的这三次电梯作业,我采用了和几乎所有人都不同的架构:将每个人当作一个线程.这样做有一定的好处:它使得整个问题的建模更加自然,并且在后期人员调度变得复杂时,可以将调度器上纷繁的逻辑判断分布在不同的人身上,大大简化了代码逻辑.对于程序复杂度,将人作为某个容器中的PersonRequest时需要在电梯到达某一层时进行遍历,而将人作为线程池中的一个任务则是通过wait()和notify()机制实现了类似的线程遍历,对于此次最多40人的简单任务而言并不会在时间上损…
简介 本单元作业分为三次 第一次作业:第一次作业要实现单部简单电梯,停靠所有楼层,无载客容量,性能分考量电梯运行时间. 第二次作业: 第二次作业实现多部电梯,电梯数量由初始化设定,每部电梯都停靠所有楼层,有相同载客容量上限,性能分考量电梯运行时间. 第三次作业:第三次作业实现多部电梯,初始三部,可通过指令动态增加.共分为三类电梯,三类电梯停靠楼层.载客上限.运行时间(上下及开关门)均有所不同.性能分考量电梯运行时间与乘客等待时间. 设计策略 本单元三次作业均采用的是生产者-消费者模式,其中Ele…
一.设计策略 三次作业中,由于前两次作业都只有一部电梯,因此我的线程只有两个,一个等待队列输入进程,以及一个电梯运行进程.等待队列输入进程实现十分简单,只需要根据输入把request添加到等待队列即可.第一次作业电梯线程是傻瓜调度(FAFS)电梯,实现极为简单,只需从等待队列拿出一人,电梯将其带到指定楼层即可.第二次作业电梯线程为可捎带调度(ALS)电梯,程序实现开始复杂,在电梯接主请求的过程中,电梯每到一层楼会判断这层楼是否有等待的request,如果有就会捎带上.而第三次作业有三部电梯,并且…
第一次作业 设计思路与感想 第一次作业是要求有捎带的电梯实现, 第一次作业是花费的时间比较长的一次,花费了很多的时间去思考架构的问题.起初是想要搞三个线程的:输入线程,调度器线程和电梯线程,想要搞一个连锁的生产消费模型,但是在调度器线程和电梯线程在交互的时候出现了一些问题. 对run方法操作最小化的思考, 对于输入线程和调度器线程来说就是比较简单的,对于电梯线程我考虑了要不要添加一些非最小化的操作,比如:电梯加入moveTo()方法. 这样的方法在while(true)里面是不合适的,完全可以通…
在初步认识了面向对象思想后,立刻进入了多线程的学习,本单元的难点主要是锁的理解,需要保证线程安全的同时防止死锁的发生,也要尽可能缩小锁的范围,提高性能.这一单元以电梯为载体,让我们从生活出发,从电梯运行的角度理解多线程,同时学习和应用生产者-消费者模式来帮助我们编程.在一部可捎带电梯的基础上越来越贴近生活,进行了电梯数量的扩展,载客人数的限制 homework5 这次作业是单部可捎带电梯,主要是初步应用多线程编程,保证线程安全,防止死锁的发生. UML 采用生产者-消费者模型,Main类创建其他…
第五次作业分析 1.设计策略 调度器采用单例模式,内部设请求队列,对请求队列的一切操作(查.增.删)都在调度器内完成,且都要求串行,从而确保线程安全.接收器和电梯是两个线程:接收器接受请求调用调度器来存入请求队列,接受器关闭时通知调度器:电梯调用调度器来获得请求,电梯从调度获得空请求且查询到接受器关闭时停止运行. 2.度量分析 (1)复杂度矩阵 方法复杂度: 类复杂度: 由于这一次作业是简单的单电梯傻瓜调度,所以方法和类复杂度都比较低. (2)类图 (3)协作图 3.bug分析 没有bug. 第…
figure:first-child { margin-top: -20px; } #write ol, #write ul { position: relative; } img { max-width: 100%; vertical-align: middle; } button, input, select, textarea { color: inherit; font-style: inherit; font-variant: inherit; font-weight: inherit…