Ich habe eine Map, die von mehreren Threads gleichzeitig geändert werden soll.
Es scheint drei verschiedene synchronisierte Map-Implementierungen in der Java-API zu geben:
Hashtable
Collections.synchronizedMap(Map)
ConcurrentHashMap
Soviel ich weiß, Hashtable
ist eine alte Implementierung (eine Erweiterung der veralteten Dictionary
Klasse), die später angepasst wurde, um die Map
Schnittstelle. Während es ist synchronisiert, scheint es ernsthafte Probleme zu geben. Fragen der Skalierbarkeit und wird bei neuen Projekten nicht empfohlen.
Aber was ist mit den beiden anderen? Was sind die Unterschiede zwischen den Karten, die von Collections.synchronizedMap(Map)
y ConcurrentHashMap
s? Welches passt zu welcher Situation?