- HashMap:线性不安全
- HashTable:线性安全,对整个哈希表加锁,并发度很低。此外,HashTabel是jdk1.0推出的,相对比较老旧,存在一些缺陷,现在已经不推荐使用。
- SynchornizedMap:线性安全,也是对整个哈希表加锁,并发度很低。
- ConcurrentHashMap(推荐):线性安全,实现了更低粒度的锁。在jdk1.7中方采用分段锁,将哈希表划分为许多小的片段,每个片段包含若干个HashEntry(单链表),给每一个小片段加锁。在jdk1.8中锁的粒度更低,给哈希表(数组)的每一个节点都配一个把锁,并发度大大提高。
参考链接:
1、为什么不建议使用java的Hashtab
2、面试 ConcurrentHashMap ,看这一篇就够了!
java中线性安全的Map集合
原文:https://www.cnblogs.com/qjy-coding/p/15236970.html