[发明专利]一种实现并发容器的方法和装置有效
| 申请号: | 201710261006.8 | 申请日: | 2017-04-20 |
| 公开(公告)号: | CN108733361B | 公开(公告)日: | 2022-03-04 |
| 发明(设计)人: | 张志维 | 申请(专利权)人: | 北京京东尚科信息技术有限公司;北京京东世纪贸易有限公司 |
| 主分类号: | G06F8/30 | 分类号: | G06F8/30;G06F9/52 |
| 代理公司: | 中原信达知识产权代理有限责任公司 11219 | 代理人: | 张一军;姜劲 |
| 地址: | 100195 北京市海淀区杏石口路6*** | 国省代码: | 北京;11 |
| 权利要求书: | 查看更多 | 说明书: | 查看更多 |
| 摘要: | |||
| 搜索关键词: | 一种 实现 并发 容器 方法 装置 | ||
1.一种实现并发容器的方法,其特征在于,所述并发容器是由多个子容器组成的父容器,按如下步骤对所述父容器进行创建:
向所述父容器中的一个子容器添加数据,并记录所添加的数据在所述父容器中的序号,当所添加的数据的量达到第一阈值时,在内存中创建一个新的子容器;以及
继续向所创建的新的子容器中添加所述数据,并记录所添加的数据在所述父容器中的序号,当所添加的数据的量达到所述第一阈值时,在内存中再次创建另一新的子容器;以此类推,直至所有数据都被添加至所述父容器为止,其中所述子容器在内存中彼此物理隔离;
在创建所述父容器后,当一个线程对所述父容器中的所述数据进行操作时,根据所述数据的序号以及所述子容器的数据量判断所述数据存储于哪一个所述子容器中;
所述线程获取所述数据所处的子容器的锁,以及其所存储的数据的序号小于所述数据的序号的子容器的锁;
所述线程对所述数据进行操作,然后释放所述数据所处的子容器的锁,以及其所存储的数据的序号小于所述数据的序号的子容器的锁,以允许其他线程进行操作;
所述父容器更新计数器值以及所述数据的序号。
2.根据权利要求1所述的方法,还包括:所述父容器对所述子容器进行管理。
3.根据权利要求1所述的方法,还包括:所述父容器中设有一个计数器,所述计数器的计数器值指示所有所述子容器的数据量之和。
4.根据权利要求3所述的方法,还包括:
在创建所述父容器后,当一个线程向所述父容器中其所存储的数据的序号为最大序号的子容器添加所述数据时,所述线程获取其所存储的数据的序号为最大序号的子容器的锁;
所述线程向其所存储的数据的序号为最大序号的子容器添加所述数据,然后释放其所存储的数据的序号为最大序号的子容器的锁,以允许其他线程进行操作;
所述父容器更新所述计数器值以及所述数据的序号。
5.根据权利要求3所述的方法,还包括:
设置第二阈值,所述第二阈值大于所述第一阈值;
在创建所述父容器后,当一个线程向所述父容器中的子容器的起始位置添加所述数据时,将所述数据添加至其所存储的数据的序号比所述数据的序号小1的子容器的末尾位置,其中,所述数据所添加至的子容器的数据量小于所述第二阈值。
6.一种实现并发容器的装置,其特征在于,所述并发容器是由多个子容器组成的父容器,所述装置包括数据操作模块和子容器创建模块,其中,在对所述父容器进行创建时:
所述数据操作模块向所述父容器中的一个子容器添加数据,并记录所添加的数据在所述父容器中的序号,当所添加的数据的量达到第一阈值时,所述数据操作模块通知所述子容器创建模块在内存中创建一个新的子容器;
所述数据操作模块继续向所创建的新的子容器中添加所述数据,并记录所添加的数据在所述父容器中的序号,当所添加的数据的量达到所述第一阈值时,所述数据操作模块通知所述子容器创建模块在内存中再次创建另一新的子容器,以此类推,直至所有数据都被添加至所述父容器为止,其中所述子容器在内存中彼此物理隔离;
在创建所述父容器后,当一个线程对所述父容器中的所述数据进行操作时,所述数据操作模块根据所述数据的序号以及所述子容器的数据量判断所述数据存储于哪一个所述子容器中;
所述线程获取所述数据所处的子容器的锁,以及其所存储的数据的序号小于所述数据的序号的子容器的锁;
所述线程通过所述数据操作模块对所述数据进行操作,然后释放所述数据所处的子容器的锁,以及其所存储的数据的序号小于所述数据的序号的子容器的锁,以允许其他线程进行操作;
所述父容器通过所述数据操作模块更新计数器值以及所述数据的序号。
7.根据权利要求6所述的装置,还包括子容器管理模块:所述父容器通过所述子容器管理模块对所述子容器进行管理。
8.根据权利要求6所述的装置,还包括:所述父容器中设有一个计数器,所述计数器的计数器值指示所有所述子容器的数据量之和。
该专利技术资料仅供研究查看技术是否侵权等信息,商用须获得专利权人授权。该专利全部权利属于北京京东尚科信息技术有限公司;北京京东世纪贸易有限公司,未经北京京东尚科信息技术有限公司;北京京东世纪贸易有限公司许可,擅自商用是侵权行为。如果您想购买此专利、获得商业授权和技术合作,请联系【客服】
本文链接:http://www.vipzhuanli.com/pat/books/201710261006.8/1.html,转载请声明来源钻瓜专利网。
- 上一篇:指纹识别算法固化硬件函数
- 下一篇:一种数据质量检验方法和装置





