Zakaj se v Javi pojavlja izjema sočasnih sprememb?

Kazalo:

Zakaj se v Javi pojavlja izjema sočasnih sprememb?
Zakaj se v Javi pojavlja izjema sočasnih sprememb?
Anonim

Izjema ConcurrentModificationException se pojavi, ko se skuša sočasno spremeniti predmet, če to ni dovoljeno. Ta izjema se običajno pojavi, ko delate z razredi zbirke Java. Na primer – Niti ni dovoljeno spreminjati zbirke, ko se kakšna druga nit ponavlja po njej.

Kako popravim izjemo sočasne spremembe?

Izjemi sočasnih sprememb se lahko izognemo tudi v okolju z enim navojem. Uporabimo lahko metodo odstranitve Iterator, da odstranimo predmet iz osnovnega predmeta zbirke. Toda v tem primeru lahko s seznama odstranite samo isti predmet in ne nobenega drugega predmeta.

Kako preprečite izjemo sočasnih sprememb na zemljevidu?

uporabite ConcurrentHashMap. nadaljujte z uporabo preprostega HashMapa, vendar na vsaki spremembi zgradite nov zemljevid in preklapljajte zemljevide v zakulisju (sinhroniziranje delovanja stikala ali uporaba AtomicReference)

Katera metoda iteratorja vrže izjemo za sočasno spreminjanje?

Če pri objektu pokličemo zaporedje metod, ki krši njegovo pogodbo, objekt vrže izjemo ConcurrentModificationException. Na primer: če med ponavljanjem zbirke neposredno poskušamo spremeniti to zbirko, bo dani fail-fast iterator vrgel to izjemo ConcurrentModificationException.

Kaj je izjema za sočasne spremembe pri prelivu sklada Java?

Če ena nit izda zaporedje klicev metode, ki krši pogodbo predmeta, lahko objek povzroči to izjemo. Na primer, če nit spremeni zbirko neposredno, medtem ko iterira zbirko s hitrim iteratorjem, bo iterator vrgel to izjemo.

Priporočena:

Zanimivi članki
Ali listnato testo vsebuje gluten?
Preberi več

Ali listnato testo vsebuje gluten?

Presenetljivo je listnato testo brez glutena enostavno narediti. To je podobno, kot bi naredili luskavo skorjo za pito. Za jajca ALI mleko ni značilno, da so v navadnem listnatem testu, vendar je spet brez glutena, tako da stvari niso vedno takšne, kot bi morale biti, ko gre za peko brez glutena.

Kaj naredi napad v večni pogubi?
Preberi več

Kaj naredi napad v večni pogubi?

Vijolične pojačitve Onslaught - omogočajo, da z orožjem zanesete štiri škode. Uporabite ta učinek za napad na najmočnejše demone. Yellow Overdrive powerups – omogočajo vam, da se premikate veliko hitreje in zagotavljajo neskončno količino streliva.

Katero je pravilno razširiti ali razširiti?
Preberi več

Katero je pravilno razširiti ali razširiti?

Expound pomeni "podrobno razložiti." Razširi pomeni "pojasni podrobneje". Medtem ko razlaga pomeni temeljitost, je razširitev primerjalna. Vse, kar lahko z gotovostjo ugotovite, ko oseba A pravi, da je oseba B "razširila"