一种优先级队列的管理方法技术

技术编号:2841706 阅读:276 留言:0更新日期:2012-04-11 18:40
本发明专利技术公开了一种优先级队列的管理方法,为每个优先级队列配置包括不同优先级队列单元插入位置的索引表,并将索引表中所有插入位置初始化为空地址,将新队列单元插入到优先级队列时,该方法还包括:步骤A,根据新队列单元的优先级以及索引表中的插入位置信息确定所述新队列单元的插入位置,并根据所确定的插入位置将新队列单元插入到优先级队列中;步骤B,刷新索引表中的插入位置。采用本发明专利技术所提供的技术方案,在将队列单元插入队列时,只需要以要插入的队列单元的优先级为索引号在索引表中进行查找即可确定插入位置,而不用从队列的一端开始,逐队列单元进行比较以确定插入位置,从而提高了插入队列单元时的处理速度,更便于优先级队列的管理。

【技术实现步骤摘要】

本专利技术涉及计算机应用技术,特别是涉及。
技术介绍
在支持优先级的消息处理中,等候处理模块进行处理的消息是按照优先级的顺序排列,而不是按照请求处理的先后排列。也就是说,优先级高的消息,即使比优先级低的消息后请求处理,也应该比优先级低的消息先得到处理。 优先级队列可以实现支持优先级的消息处理。优先级队列的每个队列单元封装了一条具有优先级的消息,队列单元的优先级就是消息的优先级。在优先级队列中,队列单元按照优先级由低到高的顺序从队列头排列到队列尾,即位于队列头的队列单元的优先级最低,位于队列尾的队列单元的优先级最高。具有同样优先级的队列单元按照插入队列的时间先后排列,先插入队列的队列单元排列在靠近队列尾的位置,后插入队列的队列单元排列在靠近队列头的位置。处理模块从队列尾开始,逐个处理每个队列单元所封装的消息,并将已处理的队列单元从优先级队列中删除。 在现有技术中,如果有一个队列单元要插入到优先级队列中,需要从队列头或队列尾开始,逐个比较每个队列单元的优先级与当前要插入的队列单元的优先级的高低,以确定插入位置。以从队列头开始比较为例,如果经过比较发现前一个队列单元的优先级低于本文档来自技高网...

【技术保护点】
一种优先级队列的管理方法,其特征在于,为每个优先级队列配置包括不同优先级队列单元插入位置的索引表,并将索引表中所有插入位置初始化为空地址,将新队列单元插入到优先级队列时,该方法还包括:步骤A,根据新队列单元的优先级以及索引表中的插入 位置信息,确定所述新队列单元的插入位置,并根据所确定的插入位置将新队列单元插入到优先级队列中;步骤B,刷新索引表中的插入位置。

【技术特征摘要】
1、一种优先级队列的管理方法,其特征在于,为每个优先级队列配置包括不同优先级队列单元插入位置的索引表,并将索引表中所有插入位置初始化为空地址,将新队列单元插入到优先级队列时,该方法还包括步骤A,根据新队列单元的优先级以及索引表中的插入位置信息,确定所述新队列单元的插入位置,并根据所确定的插入位置将新队列单元插入到优先级队列中;步骤B,刷新索引表中的插入位置。2、根据权利要求1所述的优先级队列的管理方法,其特征在于,步骤A中所述根据新队列单元的优先级以及索引表确定所述新队列单元的插入位置为以新队列单元的优先级为索引号,将索引表中该索引号对应的插入位置作为新队列单元在插入到优先级队列时,位于新队列单元之前的队列单元的存储地址。3、根据权利要求1所述的优先级队列的管理方法,其特征在于,步骤B所述刷新插入位置包括步骤B1,判断新队列单元的优先级是否为最高优先级,如果是则结束当前刷新流程,否则执行步骤B2;步骤B2,以新队列单元的优先级加1为当前索引号;步骤B3,读取索引表中当前索引号对应的插入位置,并判断是否需要修改所读取的插入位置,如果需要修改则执行步骤B4,否则结束当前刷新流程;步骤B4,将当前索引号对应的插入位置修改为新队列单元的地址,并判断当前索引号是否等于最高优先级,如果是则结束当前刷新流程,否则执行步骤B5;步骤B5,将当前索引号加1后作为新的当前索引号,返回执行步骤B3。4、根据权利要求3所述的优先级队列的管理方法,其特征在于,步...

【专利技术属性】
技术研发人员:王鑫
申请(专利权)人:腾讯科技深圳有限公司
类型:发明
国别省市:94[中国|深圳]

网友询问留言 已有0条评论
  • 还没有人留言评论。发表了对其他浏览者有用的留言会获得科技券。

1