ConcurrentModificationException

illaX

Erfahrenes Mitglied
Morgen freaks,

ich habe ein grosses Problem und komme damit nicht klar.

Mein Programm dreht sich um eine Klasse. GUI's, und viele Klassen greifen auf eine Datenstruktur zu (Eine Liste von Objekte, alle desselben Typs). Da alles in Threads ablaeuft muss ich es synchronisieren, ich habe allerdings sehr wenig Wissen ueber dieses Thema und komme nicht weiter.

Die Threads greifen alle auf diese Datenstruktur zu und stellen sie in Tabellen dar oder veraendern Daten. Jetzt iteriere ich durch die Objekte und bekomme staendig den Fehler java.util.ConcurrentModificationException. Habe mal alle setter synchronisiert, aber das reicht nicht. Dann habe ich alle Methoden synchronisiert, aber dann ist das Programm zu langsam. Habe gelesen das ich mir ein Objekt anlegen muss, dass ich als Monitor verwenden muss. Ist dies die einzigste Moeglichkeit ein Objekt zu synchronisiere. Weil ich greife in mindestens. 25 Klassen auf diese Datenstruktur zu.

Vielleicht kann mir ja jemand helfen, Danke.
 
Vielen Dank,

ich konnte es noch nicht aufs gesamte Projekt umsetzen, aber bei einer Tabelle hat es mein Problem schon geloest.
 
Hi,

ich habe nochmal eine Frage dazu. Der Fehler kommt ja nur wenn ich iteriere oder?
Nun kann ich ja auch durch die Liste laufen mit for (int i = 0; i < list.size(); i++).
Soweit ich es verstanden habe duerfte er dann keine Exception mehr werfen oder?
 
Das dürfte richtig sein, so umgehe ich zumindest regelmäßig die Iteratorprobleme.
 
Zurück