Java 5.0 stellt im Paket java.util.concurrent verschiedene gleichzeitige Containerklassen bereit, um
die Leistung synchroner Container zu verbessern.
-
Die ConcurrentHashMap-Synchronisationscontainerklasse ist eine threadsichere Hash-Tabelle, die in Java 5 hinzugefügt wurde. Bei Multithread-Operationen liegt es zwischen HashMap
und Hashtable. Der Mechanismus „Sperrsegmentierung“ wird intern verwendet, um die exklusive Sperre von Hashtable zu ersetzen. Dadurch wird die Leistung verbessert. -
Dieses Paket stellt außerdem Sammlungsimplementierungen bereit, die für die Verwendung in einem Multithread-Kontext konzipiert sind:
ConcurrentHashMap, ConcurrentSkipListMap, ConcurrentSkipListSet,
CopyOnWriteArrayList und CopyOnWriteArraySet. Wenn erwartet wird, dass viele Threads auf eine bestimmte Sammlung zugreifen
, ist ConcurrentHashMap normalerweise besser als synchronisierte HashMap und ConcurrentSkipListMap
ist normalerweise besser als synchronisierte TreeMap.
CopyOnWriteArrayList wird einer synchronisierten ArrayList vorgezogen , wenn die erwartete Anzahl von Lesevorgängen und Durchläufen viel größer ist als die Anzahl von Aktualisierungen der Liste .