java基礎—HashMap實現原理,如何保證HashMap的線程安全

在多線程條件下,容易致使死循環,具體表現爲CPU使用率100%。所以多線程環境下保證 HashMap 的線程安全性,主要有以下幾種方法:安全

1.替換成Hashtable,Hashtable經過對整個表上鎖實現線程安全,所以效率比較低多線程

2.使用Collections類的synchronizedMap方法包裝一下。方法以下:線程

public static <K,V> Map<K,V> synchronizedMap(Map<K,V> m)  返回由指定映射支持的同步(線程安全的)映射blog

3.使用ConcurrentHashMap,它使用分段鎖來保證線程安全同步


經過前兩種方式得到的線程安全的HashMap在讀寫數據的時候會對整個容器上鎖,而ConcurrentHashMap並不須要對整個容器上鎖,它只須要鎖住要修改的部分就好了io

相關文章
相關標籤/搜索