Waarom treedt een gelijktijdige wijzigingsuitzondering op in Java?

Inhoudsopgave:

Waarom treedt een gelijktijdige wijzigingsuitzondering op in Java?
Waarom treedt een gelijktijdige wijzigingsuitzondering op in Java?
Anonim

De ConcurrentModificationException treedt op wanneer een object gelijktijdig wordt gewijzigd terwijl dit niet is toegestaan. Deze uitzondering treedt meestal op wanneer men met Java Collection-klassen werkt. Bijvoorbeeld: het is niet toegestaan voor een thread om een verzameling aan te passen wanneer een andere thread eroverheen itereert.

Hoe los ik de uitzondering voor gelijktijdige wijziging op?

We kunnen de gelijktijdige wijzigingsuitzondering ook vermijden in een omgeving met één thread. We kunnen de verwijdermethode van Iterator gebruiken om het object uit het onderliggende collectieobject te verwijderen. Maar in dit geval kunt u alleen hetzelfde object verwijderen en geen ander object uit de lijst.

Hoe voorkom je een gelijktijdige wijzigingsuitzondering op een kaart?

gebruik ConcurrentHashMap. blijf de eenvoudige HashMap gebruiken, maar bouw een nieuwe kaart op elke wijziging en wissel kaarten achter de schermen (synchroniseer de wisselbewerking of gebruik AtomicReference)

Welke methode van iterator genereert gelijktijdige wijzigingsuitzondering?

Als we een reeks methoden aanroepen op een object dat zijn contract schendt, dan genereert het object ConcurrentModificationException. Bijvoorbeeld: als we tijdens het herhalen van de verzameling rechtstreeks proberen die verzameling te wijzigen, dan zal de opgegeven fail-fast iterator deze ConcurrentModificationException genereren.

Wat is de gelijktijdige wijzigingsuitzondering in Java-stackoverloop?

Als een enkele thread een reeks methode-aanroepen afgeeft die het contract van een object schendt, kan het object deze uitzondering veroorzaken. Als een thread bijvoorbeeld een verzameling rechtstreeks wijzigt terwijl deze de verzameling herha alt met een faalsnelle iterator, zal de iterator deze uitzondering genereren.

Aanbevolen:

Interessante artikelen
Welk brood is ongeraffineerd?
Lees verder

Welk brood is ongeraffineerd?

Ongeraffineerde volle granen – volkoren of meergranenbrood, bruine rijst, gerst, quinoa, zemelen, havermout. Wat voor soort brood bevat geen conserveermiddelen? De meeste volkoren broden bevatten conserveermiddelen zoals gekweekt tarwezetmeel die zuur zijn en het voor je lichaam moeilijker maken om ziektes te bestrijden.

Waarom is episiotomie beter dan scheuren?
Lees verder

Waarom is episiotomie beter dan scheuren?

Jarenlang werd een episiotomie gedacht om uitgebreidere vaginale tranen tijdens de bevalling te voorkomen - en beter te genezen dan een natuurlijke traan. Er werd ook gedacht dat de procedure zou helpen de spier- en bindweefselondersteuning van de bekkenbodem te behouden.

Is ongelijksoortig een woord?
Lees verder

Is ongelijksoortig een woord?

Senior lid. Ongelijk zou worden begrepen, maar het klinkt zo onbekend dat het schokkend zou zijn. My Webster's 3rd International Dictionary vermeldt deze twee woorden als synoniemen, maar voegt deze notatie toe: Unsimilar wordt meestal niet gebruikt.