ArrayList,Set und gleichzeitiger Zugriff?

Nobody

Mitglied
So ganz kurze Frage, weil ich konnte dazu nicht wirklich ne eindeutige Erklärung finden.

Bei ConcurrentHashMaps werden ja bis zu XX "gleichzeitige" bzw sich überlappende Operationen unterstützt.

Wie sieht es da mit ArrayList und Set aus, kann ich da gleichzeitig was removen und neu einfügen ( z.B. durch mehrere gleichzeitige threads) oder führt das zu einer Exception?

mfg
 
Ich hatte noch nie Probleme damit, dass mehrere Threads auf die selbe Collection zugegriffen haben. Allerdings solltest du das dann in synchronisierten Blöcken tun, wenn die entsprechende Collection nicht schon von sich aus synchronisierte Methoden hat. Vector und Hashtable haben synchronisierte Methoden, ob noch andere Collections welche haben, weiß ich nicht, glaube aber nicht.
 
Schau mal in das Package java.util.concurrent. Dort solltest du alles finden was du so brauchst.
 
ArrayList ist eine Implementierung des List Interfaces und NICHT synchronized! Set ist ein Interface und es kommt auf die Implementierung an.

Für beides gibt es bereits Lösungen:

Seit JAVA 1.5 gibt es das package java.util.concurrent und darin befindet sich u.a.:

- java.util.concurrent.CopyOnWriteArrayList
- java.util.concurrent.CopyOnWriteArraySet

Gruß,

C]-[aoZ
 

Neue Beiträge

Zurück