我们在开发中可能经常会使用到HashMap,比如用作数据存储、缓存、传递、转换等的一种数据结构实现方式,应当注意HashMap在不同应用环境的正确使用。我们知道HashMap是非线程安全的,若在多线程环境中未正确使用,会造成系统死锁、CPU占有过高等性能问题。
安全使用HashMap,在涉及线程安全的应用环境中,程序有如下作法:
- Sun的工程师建议,在这样的场景下应采用"ConcurrentHashMap"。
- 在"HashMap"数据结构操作方法上加"synchronized"。
参考地址:
http://code.alibabatech.com/blog/dev_related_969/hashmap-result-in-improper-use-cpu-100-of-the-problem-investigated.html 不正当使用HashMap导致cpu 100%的问题追究
http://blog.csdn.net/madding/article/details/5838477 模拟HashMap循环现象
http://blog.csdn.net/jiafu1115/article/details/7179549 HashMap 线程安全