在多线程环境中使用HashMap会有什么问题?在什么情况下使用get()方法会产生无限循环?
2016-02-16 14:04
603 查看
HashMap本身没有什么问题,有没有问题取决于你是如何使用它的。比如,你在一个线程里初始化了一个HashMap然后在多个其他线程里对其进行读取,这肯定没有任何问题。有个例子就是使用HashMap来存储系统配置项。当有多于一个线程对HashMap进行修改操作的时候才会真正产生问题,比如增加、删除、更新键值对的时候。因为put()操作可以造成重新分配存储大小(re-sizeing)的动作,因此有可能造成无限循环的发生,所以这时需要使用Hashtable或者ConcurrentHashMap,而后者更优。
相关文章推荐
- Linux基础知识题解答(四)
- 用脚本创建带animator的prefab
- 图解-自我理解的框架
- jsf 表单验证
- JavaScript实现跑马灯抽奖活动实例代码解析与优化(二)
- HDOJ 1042 N!(大数阶乘JAVA)
- 制作矢量图
- Eclipse英文版安装简体中文语言包
- 关于烂代码的那些事(下)
- Linux服务软链接
- JS公共方法:全部反选,获取url指定的参数,取值保留两位小数...
- 前端优化带来的思考,浅谈前端工程化【转】
- Xcode中pch文件的使用以及注意事项
- 最大似然估计(Maximum likelihood estimation)
- 配置sonar和jenkins进行代码审查
- You don't have permission to access / on this server.
- 前端优化带来的思考,浅谈前端工程化【转】
- narnia5
- 通过HTML5的getUserMedia实现拍照功能
- POJ2400 KM最大匹配