一、第五次作业——多线程电梯 1.设计考虑 这次主要的数据共享产生在调度器和输入线程共享了输入的请求队列,以及在每个电梯线程和调度器线程各自共享电梯的状态。因此在设计的时候主要要对这两处数据共享进行同步保护。现在看来当时自己设计还是有一定问题的,做到了将输入线程和调度器线程之间的共享对象抽取出来一个 ...
分类:
其他好文 时间:
2018-05-01 10:49:29
阅读次数:
121
这个学期,我发现了一个有趣的现象,那就是时间过得变快了,每周都在不知不觉中度过,一转眼已经到周三了,再一转眼就是周末了,可能是OO太充实, 让我产生了错觉了吧,hhh. OO第五次作业总结 第五次作业是要求我们设计一个多线程电梯的调度系统。在此之前,我对多线程可以说是一无所知。现在回忆起来,只记得清 ...
分类:
其他好文 时间:
2018-05-01 10:43:10
阅读次数:
211
三次作业多线程设计 第五次作业多线程电梯的设计为:输入、总调度器、三部电梯,共5个线程。输入和总调度器从共享对象——请求队列——中获取请求,由总调度器向三部电梯系统派发请求,一个电梯系统本身就是继承的第三次作业的具有捎带功能的(拥有一部电梯的)调度器,可以自行处理派发到电梯系统的一系列请求。 第六次 ...
分类:
其他好文 时间:
2018-05-01 00:30:51
阅读次数:
211
一、前言 第二单元的三次作业是很有特点的三次作业。多线程电梯的设计思路和前两次电梯作业迥然不同,导致我花费了大量的时间去重构之前的代码,使其适应多线程电梯的作业要求;文件监视器是一个独立的作业,不像电梯和出租车那样是一个系列,因此写起来没什么包袱,感觉并不困难;出租车调度和多线程电梯写起来感觉比较相 ...
分类:
其他好文 时间:
2018-04-30 23:54:47
阅读次数:
254
一、作业分析与总结 第五次作业是多线程电梯,线程的协同主要体现在两方面,一方面是从输入中获得请求和加入到请求队列和从请求队列中拿请求,另一方面是从请求队列中拿请求和获取电梯状态进行判断来分配请求,同步控制方法主要是对请求队列和电梯对象的方法加锁,同时通过线程sleep来确保线程间数据同步。 第六次作 ...
分类:
其他好文 时间:
2018-04-30 22:19:41
阅读次数:
226
多线程的协同与同步控制 第五次作业 作为第一次多线程作业,对于多线程的同步和协同机制还不是非常了解。在这次作业中,我将三个电梯作为了三个线程,输入线程和调度器线程进行辅助。输入线程和调度器线程之间采取了很简单的生产者消费者模式来进行指令的传递。比较重要的是调度器与三个电梯之间的协同,共享资源为指令与 ...
分类:
其他好文 时间:
2018-04-30 22:18:32
阅读次数:
172
OO第五次作业-多线程电梯 1、作业分析 这次作业和前两次不同之处在于多线程的使用,也由此引入了线程的安全性问题,给这次作业造成了一定的麻烦。由于采用多线程,就不能用前两次的方式,先将请求全部输入再进行相关计算,需要一边运行一边计算,因此舍弃了前两次的架构,基本上重新开始规划这次的作业。采用了模拟时 ...
分类:
编程语言 时间:
2018-04-30 21:12:10
阅读次数:
256
一、第五次作业——多线程电梯 (1)分析: 因为时间比较紧迫,所以采用了伪多线程的方式,即计算还是单线程,但是输出是三个多线程。不过最后被判无效了,GG。 现在分析一下觉得还是挺清晰的,电梯开三个线程,在分派任务的时候wait,notify一下就行了。 算法分析: 1.每个电梯有一个list队列,在 ...
分类:
其他好文 时间:
2018-04-30 20:26:33
阅读次数:
185
第五次作业:多线程电梯 多线程的协同和同步控制: 本次作业一共有以下几个线程:读入处理线程inputHandler,单个电梯运行线程elevatorRun*3,任务分派线程newNewDispatch。 inputHandler线程用来读入并判断是否合法,提取指令并将其放入总指令队列。 每个elev ...
分类:
其他好文 时间:
2018-04-30 18:01:58
阅读次数:
130
第五次作业--多线程电梯的总结与分析 1、策咯分析 由于上两次的电梯经验,这次虽然加大了难度,但是自己写的时候还好是比较有信心的,由于这次是多线程电梯在跑,为了模拟实际的运行情况,这次我舍弃了上两次队列思想,采用了模拟时间的方法,具体有三个电梯线程,一个总的调度线程,还有一个输入线程。由于多线程在同 ...
分类:
其他好文 时间:
2018-04-30 16:34:14
阅读次数:
148