ConcurrentHashMap
ConcurrentHashMap是線程安全,性能出色的Map的線程安全實現,相比較HashMap他是線程安全的,相比較HashTable他的性能優勢非常明顯。他的使用很簡單,這裏主要是想要探究一下ConcurrentHashMap的實現原理。
在這裏一共有 個問題需要搞明白。
- ConcurrentHashMap爲什麼比HashTable的性能要高?
- ConcurrentHashMap在JDK8和JDK7有什麼變化,爲什麼會有這種變化,對我們開發有什麼啓示?
- 爲什麼在JDK8中使用Synchronized而不是用ReentrantLock來實現加鎖?
帶着這幾個問題我們來分析一下ConcurrentHashMap的源碼吧。
ConcurrentHashMap定義
在JDK8中ConcurrentHashMap的定義如下:
public class ConcurrentHashMap<K,V> extends AbstractMap<K,V>
implements ConcurrentMap<K,V>, Serializable {