
在这样的操作中,通常会出现:
ConcurrentModificationException的问题.
这是因为Java在迭代过程中改变了原来集合的储存内容,就会触发fail-fast机制。

这是源码,也就是说,当ArraySize改变的时候,modCount和expectedModCount就会发生变化,倒是Exception的产生。
本质上,当两个线程同时Concurrently操作一块memory的时候,如果一个线程先把其中的元素删了,那么另一个线程在遍历的时候就会遇到问题,这是concurrently发生的,不知道谁快谁慢。这就是叫ConcurrentModificationException的原因。
网友评论