- ConcurrentModificationException问
- ConcurrentModificationException
- ConcurrentModificationException
- ConcurrentModificationException
- ConcurrentModificationException异
- 从ConcurrentModificationException
- 抛ConcurrentModificationException
- ConcurrentModificationException并
- ConcurrentModificationException-
- ConcurrentModificationException异
结论:此问题:出现此问题说明多个线程同时操作一个Linkedlist,或单线程下使用list的remove等方法且没有更新迭代器中的expectedModCount
解决:单线程下如存在renmove调用,应改为使用迭代器remove;
多线程下应改用相关多线安全集合。
源码分析:
list内部iterator初始化时,会把list中的modcount赋给expectedModCount

而当遍历时其他线程或本线程调用list相关方法操作了该集合,list中modcount会每次自增1

而而iterator.next会先对两个值进行比对,如果不相等,从而该异常


网友评论