L'exception ConcurrentModificationException se produit quand un objet est tenté d'être modifié simultanément alors qu'il n'est pas autorisé. Cette exception survient généralement lorsque l'on travaille avec des classes Java Collection. Par exemple - Il n'est pas permis à un thread de modifier une collection lorsqu'un autre thread itère dessus.
Comment corriger une exception de modification simultanée ?
Nous pouvons également éviter l'exception de modification simultanée dans un environnement à un seul thread. Nous pouvons utiliser la méthode remove de Iterator pour supprimer l'objet de l'objet de collection sous-jacent. Mais dans ce cas, vous ne pouvez supprimer que le même objet et aucun autre objet de la liste.
Comment empêcher une exception de modification simultanée sur une carte ?
utiliser ConcurrentHashMap. continuez à utiliser HashMap simple, mais créez une nouvelle carte à chaque modification et changez de carte en arrière-plan (en synchronisant l'opération de commutation ou en utilisant AtomicReference)
Quelle méthode d'itérateur lance une exception de modification simultanée ?
Si nous invoquons une séquence de méthodes sur un objet qui viole son contrat, alors l'objet lève ConcurrentModificationException. Par exemple: si, lors de l'itération sur la collection, nous essayons directement de modifier cette collection, alors l'itérateur fail-fast iterator lèvera cette ConcurrentModificationException.
Quelle est l'exception de modification simultanée dans le débordement de pile Java ?
Si un seul thread émet une séquence d'invocations de méthode qui viole le contrat d'un objet, l'objet peut lancer cette exception. Par exemple, si un thread modifie une collection directement pendant qu'il itère sur la collection avec un itérateur rapide, l'itérateur lèvera cette exception.