[发明专利]经由动态聚合操作的快速且线性化并发优先级队列有效
申请号: | 201180059844.8 | 申请日: | 2011-11-18 |
公开(公告)号: | CN103262030A | 公开(公告)日: | 2013-08-21 |
发明(设计)人: | T·威尔马思 | 申请(专利权)人: | 英特尔公司 |
主分类号: | G06F9/38 | 分类号: | G06F9/38;G06F9/06 |
代理公司: | 永新专利商标代理有限公司 72002 | 代理人: | 张晰;王英 |
地址: | 美国加*** | 国省代码: | 美国;US |
权利要求书: | 查看更多 | 说明书: | 查看更多 |
摘要: | |||
搜索关键词: | 经由 动态 聚合 操作 快速 线性化 并发 优先级 队列 | ||
1.一种计算机实现系统,包括:
耦合到存储器的处理器,所述处理器被配置为执行多线程应用程序;
在所述处理器上执行的多线程应用,多线程应用程序被配置为使用并发实体,并且其中所述多线程应用的多个线程被配置为生成多个操作节点,以与其它线程并发地在所述并发实体上操作;
同步和聚合逻辑部件,其耦合到所述多线程应用,并被配置为接受来自所述多个线程的操作节点,每个操作节点对应于单个线程,被接受的操作节点放置于临时列表中,所述操作节点定义在并发实体上执行的操作,其中,只有已知为处理程序线程的一个线程被允许在临时列表上操作,以在所述并发实体上执行操作,并且其中,在被允许向第二临时列表提供另一操作节点之前,每个线程被允许向所述临时列表仅提供一个操作节点,并且等待直到所述处理程序线程已经处理了相应的操作节点;并且
所述并发实体存储于所述多线程应用程序可访问的存储器中。
2.根据权利要求1所述的系统,其中所述处理程序线程被配置为轮询处理程序忙标志以确定在所述临时列表上的操作是否开始,并且其中用于所述临时列表的所述处理程序线程是在其它任意线程之前已经向所述临时列表添加了操作节点的线程。
3.根据权利要求1所述的系统,其中线程被配置为在将操作节点放置在所述临时列表上之后轮询就绪标志,所述就绪标志为是否允许所述线程继续操作的指示符,并且其中所述处理程序线程被配置为在处理来自所述临时列表的操作节点之后重置对应于所述线程的所述就绪标志。
4.根据权利要求1所述的系统,其中所述处理程序线程被配置为经由原子操作检索所述临时列表到新的指针对象,并且经由原子操作用空列表代替原始的临时列表。
5.根据权利要求1所述的系统,其中所述线程被配置为经由原子操作将操作节点放置到所述临时列表中。
6.根据权利要求1所述的系统,其中所述并发实体包括被配置为接受入队和出队操作的并发优先级队列,并且其中每个操作节点包括入队操作或出队操作两者中的一个,并且所述系统还包括:
入队/出队优化逻辑部件,其耦合到所述多线程应用并且访问所述并发优先级队列,其中所述处理程序线程被配置为在临时列表上进行操作,以在对并发优先级队列中的项目进行重排序之前,先于对非常数时间出队操作的操作,处理当入队操作节点应用到并发优先级队列时的入队操作节点以及处理常数时间出队操作,并且其中在所有非常数时间出队操作之前执行入队操作,并且其中所述处理程序线程还被配置为在执行所有的操作节点并且对并发优先级队列进行重新排序之后,向所述多线程应用提供进行完全堆排序的并发优先级队列。
7.根据权利要求6所述的系统,其中所述并发优先级队列包括存储于所述存储器中的数组数据结构,其中,当非空时,至少一部分数组元素存储于堆中。
8.根据权利要求7所述的系统,其中所述处理程序线程被配置为一次处理一个来自所述临时列表中的入队和出队操作节点,其中入队操作节点被添加到并发优先级队列的未排序部分,直到出队操作节点被处理,并且其中当添加到优先级队列的未排序部分中的最后的项目具有比堆中最高优先级项目高的优先级时,所述线程被配置为通过返回添加到未排序部分的最后的入队项目而执行出队操作,并且当所有的入队操作项目都已被添加到并发优先级队列的未排序部分时,执行任意剩余的出队操作节点,并且随着操作节点被从堆中移除而对所述并发优先级队列的堆部分进行重排序。
该专利技术资料仅供研究查看技术是否侵权等信息,商用须获得专利权人授权。该专利全部权利属于英特尔公司,未经英特尔公司许可,擅自商用是侵权行为。如果您想购买此专利、获得商业授权和技术合作,请联系【客服】
本文链接:http://www.vipzhuanli.com/pat/books/201180059844.8/1.html,转载请声明来源钻瓜专利网。
- 上一篇:一种视屏看家系统
- 下一篇:一种基于双绞线传输音视频的可视对讲电路