恭喜,你发布的帖子
发布于 2018-02-11 17:28:03
2楼
有好,有不好!
从应用原理上分析
正常情况下应该是个FIFO的队列控制,意外情况下应该是对一个线性表(队列)中的元素进行删除的工作。
楼主的做法是吧压力甩锅给了后续的控制程序,好坏暂且不论,有区别是明显的。
首先,如果预先按表的操作处理的话,后续程序是知道队列里可用的设备数量的,以及下一台设备是否可用,但按楼主的做法确是无法确认(除非另做程序,本来就想偷懒的,这不又多事儿了不是)。
队列中连续两台或多台设备撤出的可能性也是存在的,如果后续控制逻辑相对复杂,这样的处理会加大这部分控制程序的编写难度
我做的请求是一直保持,如果出栈的目标值与请求的编号一致,且请求还在保持时才起作用,就是将无效的出栈过滤掉,程序改动很小。如果要从堆栈中将无效的元素删除,首先要进行一个查询,然后再通过一个循环将后面的元素向前移动,还要判断堆栈的位置,当前无效元素的位置,还要改写剔除无效元素后的堆栈位置。而且目前有20套设备,我需要在每套设备退出请求时调用一次这个处理过程,程序量相当大。而不是你说的省事,还是要具体问题具体分析和应对。
请填写推广理由:
分享
只看
楼主