1. HashMap
HashMap线程不安全
2. Hashtable
Hashtable线程安全但效率低下
3. ConcurrentHashMap
ConcurrentHashMap是一个并发散列映射表,它允许完全并发的读取,
并且支持给定数量的并发更新。而HashTable和同步包装器包装的 HashMap,
使用一个全局的锁来同步不同线程间的并发访问,同一时间点,只能有一个
线程持有锁,也就是说在同一时间点,只能有一个线程能访问容器,这虽然
保证多线程间的安全并发访问,但同时也导致对容器的访问变成串行化的了。
JDK1.8的实现已经抛弃了Segment分段锁机制,利用CAS+Synchronized来保证并发更新的安全。数据结构采用:数组+链表+红黑树。