Excepția ConcurrentModification apare atunci când un obiect este încercat să fie modificat concomitent atunci când nu este permis. Această excepție apare de obicei atunci când se lucrează cu clase Java Collection. De exemplu - nu este permis ca un fir să modifice o colecție atunci când un alt fir iterează peste ea.
Cum pot remedia excepția de modificare simultană?
Putem evita, de asemenea, excepția modificării concomitente într-un mediu cu un singur fir. Putem folosi metoda de eliminare a Iteratorului pentru a elimina obiectul din obiectul de colecție de bază. Dar, în acest caz, puteți elimina din listă numai același obiect și nu orice alt obiect.
Cum preveniți excepția modificărilor concomitente pe o hartă?
utilizați ConcurrentHashMap. continuați să utilizați HashMap simplu, dar construiți o nouă hartă la fiecare modificare și schimbați hărțile din culise (sincronizând operația de comutare sau utilizând AtomicReference)
Care metodă de iterator lansează excepție de modificare concomitentă?
Dacă invocăm o secvență de metode pe un obiect care își încalcă contractul, atunci obiectul aruncă ConcurrentModificationException. De exemplu: dacă în timp ce iterăm peste colecție, încercăm direct să modificăm acea colecție, atunci iteratorul va genera această excepție de modificare simultană.
Care este excepția de modificare simultană în depășirea stivei Java?
Dacă un singur thread emite o secvență de invocări de metodă care încalcă contractul unui obiect, obiectul poatesă arunce această excepție. De exemplu, dacă un fir de execuție modifică o colecție direct în timp ce aceasta repetă peste colecție cu un iterator rapid, iteratorul va lansa această excepție.