`
bell0901
  • 浏览: 27854 次
社区版块
存档分类
最新评论

ConcurrentModificationException异常

    博客分类:
  • Java
阅读更多

       应用出现异常,发现报了ConcurrentModificationExceptdaogouion。之前倒是没碰到过。查资料发现是线程不安全的集合在进行迭代遍历时,集合进行了修改操作引起的。

       

static<T> Collection<T> 
synchronizedCollection(Collection<T> c) 
Returns a synchronized (thread-safe) collection backed by the specified collection. 
static<T> List<T> 
synchronizedList(List<T> list) 
Returns a synchronized (thread-safe) list backed by the specified list. 
static<K,V> Map<K,V> 
synchronizedMap(Map<K,V> m) 
Returns a synchronized (thread-safe) map backed by the specified map. 
static<T> Set<T> 
synchronizedSet(Set<T> s) 
Returns a synchronized (thread-safe) set backed by the specified set. 
static<K,V> SortedMap<K,V> 
synchronizedSortedMap(SortedMap<K,V> m) 
Returns a synchronized (thread-safe) sorted map backed by the specified sorted map. 
static<T> SortedSet<T> 
synchronizedSortedSet(SortedSet<T> s) 
Returns a synchronized (thread-safe) sorted set backed by the specified sorted set. 

        使用Collections中的方法。

        比如:Set s = Collections.synchronizedSet(new HashSet(...));验证暂时没问题。

0
1
分享到:
评论

相关推荐

    java.util.ConcurrentModificationException 异常问题详解1

    java.util.ConcurrentModificationException 异常问题详解1

    Iterator遍历过程中list删除导致异常

    Iterator遍历中 ConcurrentModificationException异常

    ArrayList.md

    3. 迭代过程中,即使Map结构被修改,也不会抛ConcurrentModificationException异常; 4. 除了数组+链表+红黑树的基本结构外,新增了转移节点,是为了保证扩容时的线程安全的节点; 5. 提供了很多Stream流式方法,...

    Java集合教程吐血整理干货.md

    ConcurrentModificationException异常 线程安全的集合 线程安全的 List CopyOnWriteArrayList 线程安全的Set 线程安全的Map ConcurrentHashMap ConcurrentSkipListMap java集合 线程不安全的集合 HashMap的特点 ...

    java集合-CopyOnWriteArraySet的使用

    只读迭代:由于写时复制的机制,CopyOnWriteArraySet 的迭代器是只读的,即迭代过程中不会抛出 ConcurrentModificationException 异常。但是,迭代器获得的数据可能不包含最新的修改。 较高的内存占用:由于每次...

    解析Java的迭代器中的fast-fail错误检测机制

    那么线程A访问集合时,就会抛出ConcurrentModificationException异常,产生fail-fast事件。 fail-fast 机制是java集合(Collection)中的一种错误机制。当多个线程对同一个集合的内容进行操作时,就可能会产生fail-...

    java7hashmap源码-Rebuild-Java:再度重修JAVA

    迭代时被修改抛出ConcurrentModificationException异常 迭代时集合被修改不抛出异常 使用原集合遍历集合元素 使用原集合的副本遍历集合元素 迭代器不要求额外的内存 迭代器需要额外的内存克隆集合对象 示例:...

    java 集合并发操作出现的异常ConcurrentModificationException

    Map在遍历时候通常 现获得其键值的集合Set,然后用迭代器Iterator来对Map进行遍历。

    java.util.ConcurrentModificationException 解决方法

    则使用会报以下异常: Java.util.ConcurrentModificationException at java.util.HashMap$HashIterator.nextEntry(HashMap.java:793) at java.util.HashMap$KeyIterator.next(HashMap.java:828) 例如以下程序...

    java8集合源码-zinc-ConcurrentModificationException:锌并发修改异常

    java.util.ConcurrentModificationException: mutation occurred during iteration [error] scala.collection.mutable.MutationTracker$.checkMutations(MutationTracker.scala:43) [error] scala.collection....

    Java开发常见问题总结.docx

    避免在循环中修改集合,可能导致ConcurrentModificationException。 异常处理: 不要忽视异常,合理捕获并处理它们。 不要过度使用try-catch,应尽量抛出业务异常给上层处理。 使用finally块进行资源清理。 并发...

    JDKAPI18CN(中文版)

    可调整大小的数组的实现List接口。 实现所有可选列表操作,并允许所有元素,包括null 。 除了实现List 接口之外,该类还... 因此,编写依赖于此异常的程序的正确性将是错误的:迭代器的故障快速行为应仅用于检测错误。

    ArrayList.java

    官方翻译:大小可变数组实现List接口的。 实现了所有可选列表操作,并允许所有... 因此,这将是错误的,写一个程序,依赖于此异常的它的正确性: 迭代器的快速失败行为应该仅用于检测bug。 这个类是成员的Java集合框架

    多线程中使用Java集合类

    如果检测到这种行为,一些迭代器实现(包括 JRE 提供的所有通用 collection 实现)可能选择抛出此异常。执行该操作的迭代器称为快速失败 迭代器,因为迭代器很快完全失败,而不会冒着在将来某个时间任意发生不确定...

    java 面试题 总结

    异常表示程序运行过程中可能出现的非正常状态,运行时异常表示虚拟机的通常操作中可能遇到的异常,是一种常见运行错误。java编译器要求方法必须声明抛出可能发生的非运行时异常,但是并不要求必须声明抛出未被捕获的...

    超级有影响力霸气的Java面试题大全文档

     异常表示程序运行过程中可能出现的非正常状态,运行时异常表示虚拟机的通常操作中可能遇到的异常,是一种常见运行错误。java编译器要求方法必须声明抛出可能发生的非运行时异常,但是并不要求必须声明抛出未被捕获...

    JAVA面试题最全集

    50.JAVA语言如何进行异常处理,关键字:thorws,throw,try,catch,finally 51.Object类(或者其子类)的finalize()方法在什么情况下被调用? 52.一个“.java”原文件中是否可以包括多个类(不是内部类)? 53.掌握...

Global site tag (gtag.js) - Google Analytics