Maison > Java > javaDidacticiel > le corps du texte

Pourquoi est-ce que je reçois ConcurrentModificationException dans une méthode synchronisée ?

Patricia Arquette
Libérer: 2024-11-08 02:50:01
original
790 Les gens l'ont consulté

Why Am I Getting ConcurrentModificationException in a Synchronized Method?

ConcurrentModificationException dans la méthode synchronisée : démêler la confusion

Dans une méthode synchronisée comme celle fournie, l'exception ConcurrentModificationException peut survenir même avec l'exception synchronisée modificateur. Cette exception résulte généralement de la modification de la collection en cours d'itération dans la boucle d'itération.

Le problème ici est que la synchronisation de la méthode ne garantit pas que la collection ne sera pas modifiée pendant l'itération. Pour éviter cette exception, il est impératif d'éviter de modifier la collection lors de l'itération.

Un exemple typique d'extrait de code qui déclencherait cette exception est :

Iterator iterator = collection.iterator();
while (iterator.hasNext()) {
    Item item = (Item) iterator.next();
    if (item.satisfiesCondition()) {
       collection.remove(item);
    }
}
Copier après la connexion

Au lieu de cela, le code doit utiliser la méthode iterator.remove() pour supprimer des éléments de la collection pendant l'itération. Si des ajouts à la collection sont nécessaires, le sous-type ListIterator peut être utilisé car il fournit une méthode add() lors du traitement d'une liste.

Ce qui précède est le contenu détaillé de. pour plus d'informations, suivez d'autres articles connexes sur le site Web de PHP en chinois!

source:php.cn
Déclaration de ce site Web
Le contenu de cet article est volontairement contribué par les internautes et les droits d'auteur appartiennent à l'auteur original. Ce site n'assume aucune responsabilité légale correspondante. Si vous trouvez un contenu suspecté de plagiat ou de contrefaçon, veuillez contacter admin@php.cn
Derniers articles par auteur
Tutoriels populaires
Plus>
Derniers téléchargements
Plus>
effets Web
Code source du site Web
Matériel du site Web
Modèle frontal
À propos de nous Clause de non-responsabilité Sitemap
Site Web PHP chinois:Formation PHP en ligne sur le bien-être public,Aidez les apprenants PHP à grandir rapidement!