[发明专利]一种无锁数据汇聚方法及装置有效
申请号: | 201310413005.2 | 申请日: | 2013-09-11 |
公开(公告)号: | CN103488717B | 公开(公告)日: | 2017-02-22 |
发明(设计)人: | 李成金;郑驰 | 申请(专利权)人: | 北京华胜天成科技股份有限公司;北京华胜天成软件技术有限公司 |
主分类号: | G06F17/30 | 分类号: | G06F17/30;G06F9/46;H04L29/06 |
代理公司: | 北京品源专利代理有限公司11332 | 代理人: | 胡彬 |
地址: | 100192 北京市海*** | 国省代码: | 北京;11 |
权利要求书: | 查看更多 | 说明书: | 查看更多 |
摘要: | |||
搜索关键词: | 一种 数据 汇聚 方法 装置 | ||
1.一种无锁数据汇聚方法,其特征在于,包括:
在缓存中开辟至少一个缓存内存数组,所述缓存内存数组的属性包括取指针、存指针和用于标识所述存指针是否在所述取指针前面的缓存标志;
创建至少一个用于将从客户端提取的数据包保存到缓存内存数组存线程和至少一个用于从缓存内存数组中取出数据包的取线程,以使所开辟的各缓存内存数组均有一个对应的存线程和一个对应的取线程;
使所开辟的各缓存内存数组所对应的存线程和取线程根据所对应的缓存内存数组的属性进行线程运行或线程等待,以并行从至少一个客户端提取数据包并进行汇聚。
2.如权利要求1所述的无锁数据汇聚方法,其特征在于,创建至少一个用于将从客户端提取的数据包保存到缓存内存数组存线程和至少一个用于从缓存内存数组中取出数据包的取线程的步骤之后还包括:
分别为各取线程在缓存中开辟至少一个对应的缓存地址队列,所开辟的各缓存地址队列用于存储至少一个所开辟的缓存内存数组中所保存的数据包的地址对象,其中所述地址对象包括用于标识数据包所在的缓存内存数组的缓存内存数组标识。
3.如权利要求2所述的无锁数据汇聚方法,其特征在于,使所开辟的各缓存内存数组所对应的存线程和取线程根据所对应的缓存内存数组的属性进行线程运行或线程等待的步骤包括:
使缓存内存数组所对应的存线程用于:接收至少一个客户端中发送的数据包,根据所对应的缓存内存数组的属性将所接收的数据包向所对应的缓存内存数组进行存储,将所存储的数据包的地址信息形成地址对象存储到所对应的缓存内存数组所对应的取线程所对应的缓存地址队列中;
使缓存内存数组所对应的取线程用于:从所对应的缓存地址队列中提取地址对象,获取所提取的地址对象中的缓存内存数组标识所对应的缓存内存数组的属性,根据所获取的属性和所提取的地址对象提取数据包。
4.如权利要求3所述的无锁数据汇聚方法,其特征在于,所述根据所对应的缓存内存数组的属性将所接收的数据包向所对应的缓存内存数组进行存储的步骤包括:
获取所接收的数据包的大小,获取所对应的缓存内存数组的取指针、存指针和缓存标志;
若所述缓存标志为真且所述取指针与所述存指针不相等,则判断所述存指针到所述取指针之间的空间是否小于所接收的数据包的大小,若是则使所述存线程等待,否则对所接收的数据包进行存储;
若所述缓存标志为真且所述取指针与所述存指针相等,则使所述存线程等待;
若所述缓存标志为假,且所述存指针与所述缓存内存数组的末地址之间的空间小于所接收的数据包的大小,则判断所对应的缓存内存数组的剩余空间是否小于所述待存储数据包的大小,若是则使所述存线程等待,否则将所述缓存标志更改为真,对所接收的数据包进行存储;
若所述缓存标志为假,且所述存指针与所述缓存内存数组的末地址之间的空间不小于所述待存储数据包的大小,则对所接收的数据包进行存储;
其中所述对所接收的数据包进行存储的步骤包括:根据所述存指针将所接收的数据包存储到所对应的缓存内存数组中并更改所述存指针,将所接收的数据包在所对应的缓存内存数组中的地址对象记录在所对应的缓存内存数组所指定的缓存地址队列中。
该专利技术资料仅供研究查看技术是否侵权等信息,商用须获得专利权人授权。该专利全部权利属于北京华胜天成科技股份有限公司;北京华胜天成软件技术有限公司,未经北京华胜天成科技股份有限公司;北京华胜天成软件技术有限公司许可,擅自商用是侵权行为。如果您想购买此专利、获得商业授权和技术合作,请联系【客服】
本文链接:http://www.vipzhuanli.com/pat/books/201310413005.2/1.html,转载请声明来源钻瓜专利网。
- 数据显示系统、数据中继设备、数据中继方法、数据系统、接收设备和数据读取方法
- 数据记录方法、数据记录装置、数据记录媒体、数据重播方法和数据重播装置
- 数据发送方法、数据发送系统、数据发送装置以及数据结构
- 数据显示系统、数据中继设备、数据中继方法及数据系统
- 数据嵌入装置、数据嵌入方法、数据提取装置及数据提取方法
- 数据管理装置、数据编辑装置、数据阅览装置、数据管理方法、数据编辑方法以及数据阅览方法
- 数据发送和数据接收设备、数据发送和数据接收方法
- 数据发送装置、数据接收装置、数据收发系统、数据发送方法、数据接收方法和数据收发方法
- 数据发送方法、数据再现方法、数据发送装置及数据再现装置
- 数据发送方法、数据再现方法、数据发送装置及数据再现装置