Dans l'environnement multithread Java, si la méthode rencontre des modifications simultanées lors de la détection des ressources, une exception peut être lancée. À l'heure actuelle, l'objet est dans un état non modifié. ConcurrentModificationException
ConcurrentModificationException
<code class="language-java">Exception in thread "main" java.util.ConcurrentModificationException at java.base/java.util.ArrayList$Itr.checkForComodification(ArrayList.java:000) at java.base/java.util.ArrayList$Itr.next(ArrayList.java:000) at com.journaldev.ConcurrentModificationException.ConcurrentModificationExceptionExample.main(ConcurrentModificationExceptionExample.java:00)</code>
La détection et l'itération des exceptions ne sont pas définies dans la méthode
.modCount
algorithme d'exception ConcurrentModificationException
Cet algorithme montre comment générer
java.util.ConcurrentModificationException
Exception Syntaxe ConcurrentModificationException
La syntaxe suivante montre comment générer une exception
ConcurrentModificationException
<code class="language-java">// ... (代码片段省略,与原文类似,但使用更简洁的变量名和注释) ...</code>
ConcurrentModificationException
<code class="language-java">for (Iterator<integer> iterator = integers.iterator(); iterator.hasNext();) { Integer integer = iterator.next(); if(integer == 2) { iterator.remove(); // 使用迭代器的remove()方法安全地移除元素 } }</integer></code>
next()
remove()
iterator.next()
ConcurrentModificationException
Des exceptions se produisent généralement lorsque la collection est modifiée simultanément. Cet article décrit comment éviter cette exception et fournit des exemples de code Java correspondants. Cette exception peut être effectivement évitée à l'aide de classes de collecte de filetage telles que CopyOnWriteArrayList
ou ConcurrentHashMap
, ainsi que la méthode remove()
de l'itérateur
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!