[发明专利]一种多核环境下实现免锁队列的方法和设备在审
申请号: | 201510486082.X | 申请日: | 2015-08-10 |
公开(公告)号: | CN105045632A | 公开(公告)日: | 2015-11-11 |
发明(设计)人: | 赵剑川;贾克明 | 申请(专利权)人: | 京信通信技术(广州)有限公司 |
主分类号: | G06F9/445 | 分类号: | G06F9/445 |
代理公司: | 北京同达信恒知识产权代理有限公司 11291 | 代理人: | 朱佳 |
地址: | 510663 广东*** | 国省代码: | 广东;44 |
权利要求书: | 查看更多 | 说明书: | 查看更多 |
摘要: | 本发明公开了一种多核环境下实现免锁队列的方法和设备,以解决当出现并发访问冲突时由于空等待导致系统效率低的问题。该方法为,确定一个环形队列,该环形队列包括生产者子队列和消费者子队列;当生产者有M个数据入队时,确定该环形队列未满时,将生产者子队列初始头指针加M作为新的生产者子队列头指针,从该生产者子队列初始头指针开始依次将M个数据加入到该环形队列中;当消费者有N个数据出队时,确定该环形队列未空时,将该消费者子队列初始头指针加N作为新的消费者子队列的头指针,从该消费者子队列初始头指针开始依次将N个数据从该环形队列中清除,这样解决了多生产者或多消费者并发访问时的冲突,减少空等待的时间,提高系统效率。 | ||
搜索关键词: | 一种 多核 环境 实现 队列 方法 设备 | ||
【主权项】:
一种多核环境下实现免锁队列的方法,其特征在于,包括:确定一个环形队列,所述环形队列的存储结构采用数组形式存储,所述环形队列包括生产者子队列和消费者子队列;当生产者有M个数据入队时,获取所述生产者子队列的头指针作为生产者子队列初始头指针,获取所述消费者子队列的尾指针作为消费者子队列第一尾指针,基于所述生产者子队列初始头指针和所述消费者子队列第一尾指针,确定所述环形队列未满时,将所述生产者子队列初始头指针加M作为新的生产者子队列头指针,从所述生产者子队列初始头指针开始依次将M个数据加入到所述环形队列中,获取所述生产者子队列的尾指针作为生产者子队列初始尾指针,确定所述生产者子队列初始尾指针等于所述生产者子队列初始头指针时,将所述生产者子队列初始尾指针加M作为新的生产者子队列尾指针,入队完成,其中M为正整数;当消费者有N个数据出队时,获取所述消费者子队列的头指针作为消费者子队列初始头指针,获取所述生产者子队列的尾指针作为生产者子队列第一尾指针,基于所述消费者子队列初始头指针和所述生产者子队列第一尾指针,确定所述环形队列未空时,将所述消费者子队列初始头指针加N作为新的消费者子队列的头指针,从所述消费者子队列初始头指针开始依次将N个数据从所述环形队列中清除,获取所述消费者子队列的尾指针作为消费者子队列初始尾指针,确定所述消费者子队列初始尾指针等于所述消费者子队列初始头指针时,将所述消费者子队列初始尾指针加N作为新的消费者子队列尾指针,出队完成,其中N为正整数。
下载完整专利技术内容需要扣除积分,VIP会员可以免费下载。
该专利技术资料仅供研究查看技术是否侵权等信息,商用须获得专利权人授权。该专利全部权利属于京信通信技术(广州)有限公司,未经京信通信技术(广州)有限公司许可,擅自商用是侵权行为。如果您想购买此专利、获得商业授权和技术合作,请联系【客服】
本文链接:http://www.vipzhuanli.com/patent/201510486082.X/,转载请声明来源钻瓜专利网。