[发明专利]JAVA容器的同步化方法及系统有效
| 申请号: | 201510963416.8 | 申请日: | 2015-12-18 |
| 公开(公告)号: | CN105630610B | 公开(公告)日: | 2019-03-26 |
| 发明(设计)人: | 李栋 | 申请(专利权)人: | 歌尔股份有限公司 |
| 主分类号: | G06F9/52 | 分类号: | G06F9/52 |
| 代理公司: | 北京鸿元知识产权代理有限公司 11327 | 代理人: | 袁文婷;陈英俊 |
| 地址: | 261031 山东省潍*** | 国省代码: | 山东;37 |
| 权利要求书: | 查看更多 | 说明书: | 查看更多 |
| 摘要: | |||
| 搜索关键词: | java 容器 同步 方法 系统 | ||
本发明提供了一种JAVA容器的同步化方法及系统,其中的方法包括:查看JAVA容器的类型;在JAVA容器为Collection类型时,对Collection类型的JAVA容器进行线程封装,使Collection类型的JAVA容器中的集合转换成同步化集合;在JAVA容器为非Collection类型时,将非Collection类型的JAVA容器中的集合迭代到已经过线程封装的Collection类型的JAVA容器中。利用本发明能够在迭代器在新增迭代对象时,向JAVA容器的尾端追加新增的迭代对象,保证新增的迭代对象会被迭代,在迭代器删除迭代对象时,不释放当前迭代对象的位置,以保证后续的每个迭代对象不会因位置重新排序,导致迭代失效。
技术领域
本发明涉及JAVA技术领域,更为具体地,涉及一种JAVA容器的同步化方法及系统。
背景技术
传统的JAVA迭代器(以下简称迭代器)属于快速失败类的迭代器,其迭代行为是非线程安全的,因此,在迭代器迭代的过程中,当因业务需求动态地增加或删除迭代对象时,迭代器本身的行为将变的不可控,迭代行为向哪种方向发展取决于JAVA容器实现类的具体算法,从而存在以下问题:
1、在迭代器增加迭代对象时,有序序列的JAVA容器将在与迭代器的对应顺序位置增加迭代对象,无序序列的JAVA容器将在随机位置增加迭代对象,无论哪种序列,都无法获知这个位置是否被遍历过。
2、在迭代器删除当前迭代对象时,有序序列的JAVA容器会将后序的迭代对象依次前提一个位置,而无序序列的JAVA容器在删除迭代对象后,后序的迭代对象的顺序有可能会被打乱,无论哪种序列,都会导致后序的迭代对象重新进行排序。
发明内容
鉴于上述问题,本发明的目的是提供一种JAVA容器的同步化方法及系统,以解决上述背景技术中指出的问题。
本发明提供一种JAVA容器的同步化方法,包括:
查看JAVA容器的类型;
在JAVA容器为Collection类型时,对Collection类型的JAVA容器进行线程封装,使Collection类型的JAVA容器中的集合转换成同步化集合;
在JAVA容器为非Collection类型时,将非Collection类型的JAVA容器中的集合迭代到预先经过线程封装的JAVA容器中。
本发明还提供一种JAVA容器的同步化系统,包括:
JAVA容器类型查看单元,用于查看JAVA容器的类型;
线程封装单元,用于在JAVA容器为Collection类型时,对Collection类型的JAVA容器进行线程封装,使Collection类型的JAVA容器中的集合转换成同步化集合;
线程迭代单元,用于在JAVA容器为非Collection类型时,将非Collection类型的JAVA容器中的集合迭代到预先经过线程封装的Collection类型的JAVA容器中。
利用上述本发明的JAVA容器的同步化方法及系统,通过对JAVA容器进行安全线程的封装,将JAVA容器内的集合封装成同步化的集合,以固定集合中每个对象的位置,在迭代器在新增迭代对象时,向JAVA容器的尾端追加新增的迭代对象,保证新增的迭代对象会被迭代,在迭代器删除迭代对象时,不释放当前迭代对象的位置,以保证后续的每个迭代对象不会因位置重新排序,导致迭代失效。
为了实现上述以及相关目的,本发明的一个或多个方面包括后面将详细说明并在权利要求中特别指出的特征。下面的说明以及附图详细说明了本发明的某些示例性方面。然而,这些方面指示的仅仅是可使用本发明的原理的各种方式中的一些方式。此外,本发明旨在包括所有这些方面以及它们的等同物。
附图说明
该专利技术资料仅供研究查看技术是否侵权等信息,商用须获得专利权人授权。该专利全部权利属于歌尔股份有限公司,未经歌尔股份有限公司许可,擅自商用是侵权行为。如果您想购买此专利、获得商业授权和技术合作,请联系【客服】
本文链接:http://www.vipzhuanli.com/pat/books/201510963416.8/2.html,转载请声明来源钻瓜专利网。
- 上一篇:一种机器故障自动化处理方法
- 下一篇:用于调整线程池容量的方法及装置





