同步的意思是加鎖的意思
二、HashTable和ConcurrentHashMap的區別:
在進行迭代時,HashTable會鎖住整個Map,而ConcurrentHashMap只鎖住Map的一部分,所以ConcurrentHashMap在多線程環境下的性能更好。
三、如何讓HashMap實現同步功能?
Map m = Collections.synchronizeMap(hashMap);
一、HashMap與HashTable的區別:
1.HashMap是非線程安全的,HashTable是線程安全的,HashTable中的很多方法都是加了sysnchronized關鍵字的,確保了方法的同步;
2.HashMap可以接受空key和value,而HashTable不能接受空key和value;
3.由於HashMap是異步執行,而HashTable是同步執行,所以在單線程環境下,HashMap的速度高於HashTable;
4.HashMap的迭代器采用的是Iterator,Iterator是快速失敗(Fail-Fast),在遍歷過程中若有其他線程對該HashMap進行增加或者刪除元素,則會拋出ConcurrentModificationException,因為快速失敗的迭代器是操作的集合本身,
HashTable的迭代器是Enumeration,Enumeration是安全失敗(Fail-Safe),在遍歷過程中若有其他線程對該集合進行增加或則刪除元素,不會拋出ConcurentModificationException,因為安全失敗的迭代器操作的是原集合的一個拷貝。
————————————————
版權聲明:本文為CSDN博主「agallochmind」的原創文章,遵循CC 4.0 BY-SA版權協議,轉載請附上原文出處鏈接及本聲明。
原文鏈接:https://blog.csdn.net/agallochmind/article/details/78374813