652 Stimmen

Was ist der Unterschied zwischen ConcurrentHashMap und Collections.synchronizedMap(Map)?

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?

CodeJaeger.com

CodeJaeger ist eine Gemeinschaft für Programmierer, die täglich Hilfe erhalten..
Wir haben viele Inhalte, und Sie können auch Ihre eigenen Fragen stellen oder die Fragen anderer Leute lösen.

Powered by:

X