HashMap-HashTable-ConcurrentHashMap
HashMap: 是线程不安全的
HashTable:是线程安全的(但是性能低,竞争越激烈效率越低)
ConcurrentHashMap:是线程安全的,并且是高效的
HashTable效率低下原因:
public synchronized V put(K key, V value)
public synchronized V get(Object key)
HashTable容器使用synchronized来保证线程安全,但在线程竞争激烈的情况下HashTable的效率非常
低下。因为当一个线程访问HashTable的同步方法,其他线程也访问HashTable的同步方法时,会进入
阻塞状态。如线程1使用put进行元素添加,线程2不但不能使用put方法添加元素,也不能使用get方法
来获取元素,所以竞争越激烈效率越低。