[发明专利]一种基于队列传输数据的方法和系统在审
申请号: | 201810244768.1 | 申请日: | 2018-03-23 |
公开(公告)号: | CN110297719A | 公开(公告)日: | 2019-10-01 |
发明(设计)人: | 石志光 | 申请(专利权)人: | 北京京东尚科信息技术有限公司;北京京东世纪贸易有限公司 |
主分类号: | G06F9/54 | 分类号: | G06F9/54;G06F9/455 |
代理公司: | 中原信达知识产权代理有限责任公司 11219 | 代理人: | 张一军;李阳 |
地址: | 100195 北京市海淀区杏石口路6*** | 国省代码: | 北京;11 |
权利要求书: | 查看更多 | 说明书: | 查看更多 |
摘要: | |||
搜索关键词: | 队列 写入 队列传输 清空 回转 传送 计算机技术领域 面向对象语言 读取 垃圾回收 批量传输 系统性能 写入数据 写队列 再利用 回收 创建 | ||
本发明公开了一种基于队列传输数据的方法和系统,涉及计算机技术领域。该方法的一具体实施方式包括:确认初始容器列表中没有空的容器,则从回转队列中获取空的容器;将数据写入所述容器,并将写入数据的容器写入传送队列;从所述传送队列中获取装有数据的容器,读取并清空该容器中的数据,并将清空的容器写入回转队列。本发明能够实现数据的批量传输,而且实现了容器的回收再利用。进而,可以避免每次写队列时都要创建新的容器,在面向对象语言中,还可以消除由此带来的垃圾回收对系统性能造成的影响。
技术领域
本发明涉及计算机技术领域,尤其涉及一种基于队列传输数据的方法和系统。
背景技术
在处理数据的系统中,多采用队列来实现模块与模块之间传输数据时。其中,队列是一种先进先出线性表。图1是现有技术中传输数据的方法的示意图,如图1所示,模块A将数据写入队列中,模块B从该队列中读取数据,在该过程中,队列起到缓冲的作用,可从一定程度上来解决模块A与模块B处理数据速率的差异。具体的,模块A先获取队列的写入锁,则模块A根据该写入锁将数据写入到队列,每次可写入一条数据,也可通过容器每次写入一批数据。模块A写入数据成功后,释放队列的写入锁。模块B在读取数据的过程中,获取队列的读取锁,则模块B根据读取锁从队列中读取一条数据,或者根据读取锁从队列中获取装有数据的容器,读取或获取成功后,模块B释放读取锁。如果模块A通过容器将数据写入到队列中,则需要不断的产生新的容器。同时,模块B从队列中获取到容器,并将该容器中的数据读取后,直接将该容器进行作废处理。
现有技术在实施过程中,存在以下问题:如果每次写入/读取时只处理一条数据,则由于每次写入/读取时都要加锁,存在一定的性能损耗,而且对于数据批量处理的支持不友好;在队列不限制长度的情况下,如果写入速率大于读取速率,会导致队列中堆积的数据越来越多,容易造成内存泄露;如果通过容器实现数据的写入/读取,则需要不断的产生容器,以及对每个使用过的容器进行作废处理,会带来大量的内存消耗。
发明内容
有鉴于此,本发明实施例提供一种基于队列传输数据的方法和系统,能够通过传送队列存放装有数据的容器,通过回转队列存放空的容器,在从传送队列中获取容器后,读取该容器中的数据并清空,并且将清空的容器写入回转队列,不仅可以实现数据的批量传输,而且实现了容器的回收再利用。进而,可以避免每次写队列时都要创建新的容器,在面向对象语言中,还可以消除由此带来的垃圾回收对系统性能造成的影响。
为实现上述目的,根据本发明实施例的一个方面,提供了一种基于队列传输数据的方法。
本发明实施例的基于队列传输数据的方法包括:确认初始容器列表中没有空的容器,则从回转队列中获取空的容器;将数据写入所述容器,并将写入数据的容器写入传送队列;从所述传送队列中获取装有数据的容器,读取并清空该容器中的数据,并将清空的容器写入回转队列。
可选地,在从回转队列中获取空的容器之前,还包括:创建初始容器列表,所述初始容器列表中包括第一数量的空的容器;从所述初始容器列表中获取空的容器,直至确认初始容器列表中没有空的容器。
可选地,根据内存的大小设置所述第一数量和第二数量,所述第二数量为容器中存放数据的数量阈值。
可选地,将写入数据的容器写入传送队列的步骤包括:获取传送队列的写入锁;根据所述写入锁将写入数据的容器写入所述传送队列,并释放所述写入锁;
将清空的容器写入回转队列的步骤包括:获取回转队列的写入锁;根据所述写入锁将清空的容器写入所述回转队列,并释放所述写入锁。
为实现上述目的,根据本发明实施例的另一个方面,提供了一种基于队列传输数据的系统。
该专利技术资料仅供研究查看技术是否侵权等信息,商用须获得专利权人授权。该专利全部权利属于北京京东尚科信息技术有限公司;北京京东世纪贸易有限公司,未经北京京东尚科信息技术有限公司;北京京东世纪贸易有限公司许可,擅自商用是侵权行为。如果您想购买此专利、获得商业授权和技术合作,请联系【客服】
本文链接:http://www.vipzhuanli.com/pat/books/201810244768.1/2.html,转载请声明来源钻瓜专利网。