HashMap是如何實現線程安全的?

1 使用Hashtable類或者是ConcurrentHashMap類進行替換.
HashTable 和 ConcurrentHashMap 都是線程安全的。區別在於他們對加鎖的範圍不同,HashTable 對整張Hash表進行加鎖,而ConcurrentHashMap將Hash表分爲16桶(segment),每一桶都有一把鎖,當多個線程訪問不同的段時,因爲獲取到的鎖是不同的,效率比Hashtable高多了,推薦使用。
2 使用Collections.synchronizedMap(new Hashtable())進行替換
List list2 = Collections.synchronizedList(new ArrayList<>());

發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章