Miért fordul elő párhuzamos módosítási kivétel a java-ban?

Tartalomjegyzék:

Miért fordul elő párhuzamos módosítási kivétel a java-ban?
Miért fordul elő párhuzamos módosítási kivétel a java-ban?
Anonim

A ConcurrentModificationException akkor fordul elő, amikor egy objektumot egyidejűleg próbálnak módosítani, amikor az nem megengedett. Ez a kivétel általában akkor következik be, amikor az ember Java Collection osztályokkal dolgozik. Például - Nem megengedett, hogy egy szál módosítson egy gyűjteményt, amikor egy másik szál iterál rajta.

Hogyan javíthatom ki az egyidejű módosítási kivételt?

A párhuzamos módosítási kivételt is elkerülhetjük egyetlen szálas környezetben. Használhatjuk az Iterator eltávolítási módszerét, hogy eltávolítsuk az objektumot az alapul szolgáló gyűjteményobjektumból. Ebben az esetben azonban csak ugyanazt az objektumot távolíthatja el a listáról, más objektumokat nem.

Hogyan akadályozhatja meg az egyidejű módosítási kivételeket a térképen?

használjon ConcurrentHashMap. folytasd az egyszerű HashMap használatát, de építs új térképet minden módosításra, és válts a színfalak mögött a térképeket (a kapcsolóművelet szinkronizálása vagy az AtomicReference használata)

Az iterátor melyik metódusa ad egyidejű módosítási kivételt?

Ha metódussorozatot hívunk meg egy objektumon, amely megsérti a szerződését, akkor az objektum ConcurrentModificationExceptiont dob. Például: ha a gyűjtemény iterálása közben közvetlenül megpróbáljuk módosítani a gyűjteményt, akkor a megadott fail-fast iterator ezt a ConcurrentModificationException kivételt fogja dobni.

Mi az egyidejű módosítási kivétel a Java veremtúlcsordulásban?

Ha egyetlen szál olyan metódushívási sorozatot ad ki, amely sérti egy objektum szerződését, az objektum ezt a kivételt dobhatja. Például, ha egy szál közvetlenül módosít egy gyűjteményt, miközben az iterál a gyűjtemény felett egy hibamentes iterátorral, az iterátor ezt a kivételt fogja dobni.

Ajánlott:

Érdekes cikkek
Hol van az agyban az agresszivitás?
Olvass tovább

Hol van az agyban az agresszivitás?

Két agyterület vesz részt az agresszív viselkedés ideghálózatában: az amygdala és a hipotalamusz. Melyik agylebeny szabályozza az agressziót? Az agresszív viselkedés leginkább a elülső lebenyekdiszfunkciójához kapcsolódik, amelyek felelősek a végrehajtó funkciókért és az összetett társadalmi viselkedésért (Anderson és Bushman, 2002;

Mikor festették a Les demoiselles d'avignont?
Olvass tovább

Mikor festették a Les demoiselles d'avignont?

A Les Demoiselles d'Avignon egy nagy olajfestmény, amelyet 1907-ben Pablo Picasso spanyol művész készített. A Modern Művészeti Múzeum állandó gyűjteményének részét képező alkotás öt meztelen női prostituált ábrázol egy barcelonai Carrer d'Avinyó utcában lévő bordélyban.

Madarasszony elment nyuba?
Olvass tovább

Madarasszony elment nyuba?

Lady Bird megtanulja, felvették a New York-i iskolába, és anyagi támogatással és apja segítségével megengedheti magának a tandíjat. Hogyan került Lady Bird a NYU-ba? Lady Bird felkerült a várólistáról egy New York-i iskolába, nem a Columbiába, hanem esetleg Sarah Lawrence-be, Fordhamba vagy a New York-i egyetemre.