面向对象第二单元总结

设计与架构总结

第一个挑战是将“生产者-消费者”模型直接应用于“ Picture Java Multi-threaded Design Pattern”,因为它首先暴露于多线程。 输入线程People与电梯线程电梯共享requestQueue对象。 requestQueue基于数据结构Queue并同步add和get方法以实现线程安全。

第二种工作设计是将电梯设置为两个“不确定”待机状态以及“上”和“下”运行状态。不确定,请等待命令出现在电梯中,然后立即响应最新命令,然后将电梯状态设置为命令所需的相同状态。如果电梯处于两种运动状态之一,则电梯将沿与当前方向相同的方向收集并响应所有命令。运行完成后,以相反的方向进行扫描,以查看电梯是否处于其他运行状态或不确定状态。在第二个任务中,我的类结构的布局类似于第一个任务,主要的增加是如何在不同时间向请求队列请求电梯请求。这种调度策略类似于您可以在网上找到的LOOK算法。

第三项任务是搭载多台具有不同运输能力的电梯。设计是在整个请求输入中有多个线程,3个电梯和一个总调度程序。请求输入时,调度程序确定是否可以直接访问该命令,如果可以,则将其传递到直接处理该命令的主调度程序的调度程序,否则将创建一个处理split命令的新调度程序线程。它始于。通过每个调度员的处理,命令被分配给每个电梯的缓冲区。电梯的调度策略已相对于第二个任务发生了变化,因此可以随时收集当前缓冲区中的所有命令。在那之后,电梯反复进行上升和下降运动,并且每条通行证都处理了它可以处理的指令。此算法应为纯LOOK算法。

 

基于度量的程序分析与评价

 

第六次作业:

 

 

UML时序图

面向对象第二单元总结_第1张图片

 

 

 

 

第七次作业:

 

 

UML时序图

面向对象第二单元总结_第2张图片

 

 

 

心得体会

多线程编程是Java程序员的命脉,最后,还需要在许多硬件设备和神经网络培训中使用此知识。 多线程似乎很容易,但是实际上却很困难。 首先,他不擅长调试,并且通常很难重现Java多线程bug,即使当前的bug可以重现当前对Java多线程缺乏了解,也很难判断如何解决它。 我已经阅读了“ Java多线程设计模式描述”,但是我仍然觉得我对Java多线程没有足够的了解。 回顾过去,需要阅读更多相关书籍来完成相关练习,以加深您的理解。 我听说这两个设备将通过出租车问题加深您对多线程的理解。

 

你可能感兴趣的:(面向对象第二单元总结)