T
theomega
Gast
Hallo Leute,
ich habe folgendes Problem: Zwei Threads greifen unter umständen gleichzeitig lesend und schreibend auf eine HashMap zu. Das führt unweigerlich zu einer Concurrent Modification Exception.
Der erste Thread (wird sehr häufig ausgeführt) liest Daten aus der HashMap aus (ein Element) und fügt evtl eines ein. Dieser Thread beinhaltet das Userinterface. Der zweite Thread (wird seltener ausgeführt) löscht Einträge aus der HashMap. Dieser Thread läuft im Hintergrund ab.
Komischerweise tritt die Exception immer im zweiten Thread ein, was eigentlich positiv ist (da stört sie den Benutzer nicht), allerdings kann ich mir diesen Effekt nicht erklären, wiso genau an dieser Stelle. Kann mir das jemand erklären? Weil ich möchte es auf jeden Fall immer so haben und nie anderherum (weil dann würde ja im GUI eine Exception auftreten). Geht dass?
Danke
TO
ich habe folgendes Problem: Zwei Threads greifen unter umständen gleichzeitig lesend und schreibend auf eine HashMap zu. Das führt unweigerlich zu einer Concurrent Modification Exception.
Der erste Thread (wird sehr häufig ausgeführt) liest Daten aus der HashMap aus (ein Element) und fügt evtl eines ein. Dieser Thread beinhaltet das Userinterface. Der zweite Thread (wird seltener ausgeführt) löscht Einträge aus der HashMap. Dieser Thread läuft im Hintergrund ab.
Komischerweise tritt die Exception immer im zweiten Thread ein, was eigentlich positiv ist (da stört sie den Benutzer nicht), allerdings kann ich mir diesen Effekt nicht erklären, wiso genau an dieser Stelle. Kann mir das jemand erklären? Weil ich möchte es auf jeden Fall immer so haben und nie anderherum (weil dann würde ja im GUI eine Exception auftreten). Geht dass?
Danke
TO