[發明專利]一種實現并發容器的方法和裝置有效
| 申請號: | 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.szxzyx.cn/pat/books/201710261006.8/1.html,轉載請聲明來源鉆瓜專利網。
- 上一篇:指紋識別算法固化硬件函數
- 下一篇:一種數據質量檢驗方法和裝置





