Per què es produeix una excepció de modificació simultània a Java?

Taula de continguts:

Per què es produeix una excepció de modificació simultània a Java?
Per què es produeix una excepció de modificació simultània a Java?
Anonim

L'excepció de modificació simultània es produeix quan s'intenta modificar simultàniament un objecte quan no és permès. Aquesta excepció sol venir quan es treballa amb classes de Java Collection. Per exemple: no es permet que un fil modifiqui una col·lecció quan un altre fil hi està iterant.

Com soluciono l'excepció de modificació simultània?

També podem evitar l'excepció de modificació simultània en un entorn d'un sol fil. Podem utilitzar el mètode d'eliminació d'Iterator per eliminar l'objecte de l'objecte de col·lecció subjacent. Però en aquest cas, només podeu eliminar el mateix objecte i no cap altre objecte de la llista.

Com eviteu l'excepció de modificació simultània en un mapa?

utilitza ConcurrentHashMap. continueu utilitzant HashMap senzill, però creeu un mapa nou a cada modificació i canvieu els mapes darrere de les escenes (sincronitzant l'operació de commutació o utilitzant AtomicReference)

Quin mètode d'iterador genera una excepció de modificació concurrent?

Si invoquem una seqüència de mètodes en un objecte que incompleix el seu contracte, aleshores l'objecte llança l'excepció ConcurrentModificationException. Per exemple: si mentre iterem sobre la col·lecció, intentem modificar-la directament, aleshores el iterador ràpid d'error generarà aquesta excepció de modificació simultània.

Quina és l'excepció de modificació simultània al desbordament de la pila de Java?

Si un únic fil emet una seqüència d'invocacions de mètodes que infringeix el contracte d'un objecte, el objecte potllançar aquesta excepció. Per exemple, si un fil modifica una col·lecció directament mentre està iterant sobre la col·lecció amb un iterador ràpid, l'iterador llançarà aquesta excepció.

Recomanat:

Articles d'interès
Qui va ser el primer sant a ser canonitzat?
Llegeix més

Qui va ser el primer sant a ser canonitzat?

Ulrich d'Augsburg va ser el primer sant que va ser canonitzat formalment pel papa Joan XV. Al segle XII, l'església va centralitzar oficialment el procés, posant el mateix papa a càrrec de les comissions que investigaven i documentaven les vides de possibles sants.

Hi ha menys turbulències a la nit?
Llegeix més

Hi ha menys turbulències a la nit?

Sí, els els vols nocturns solen ser menys turbulents que els vols de mitja tarda a causa de la calefacció atmosfèrica. A quina hora del dia hi ha menys turbulències? Segons la capitana de la companyia aèria, Laura Einsetler, a primera hora del matí és el millor moment per volar per evitar turbulències.

Per què és famós Grigori Perelman?
Llegeix més

Per què és famós Grigori Perelman?

Grigori Perelman, (nascut el 1966, U.R.S.S.), matemàtic rus que va rebre -i va declinar- la medalla Fields l'any 2006 pel seu treball sobre la conjectura de Poincaré i el medallista William Fields Conjectura de geometrització de Thurston. Perelman és un geni?