java基础线程的安全

java基础线程的安全-解决快速失败和安全失败 快速失败(fail-fast) 为什么在用迭代器遍历时,修改集合就会抛异常时?

原因是迭代器在遍历时直接访问集合中的内容,并且在遍历过程中使用一个 modCount 变量。集合在被遍历期间如果内容发生变化,就会改变 modCount 的值。
java基础线程的安全_第1张图片
部分代码,只供参考!

在使用迭代器对集合对象进行遍历的时候,如果 A 线程正在对集合进行遍历,此时 B 线程对集合进行修改(增加、删除、修改),或者 A 线程在遍历过程中对集合进行修改,都会导致 A 线程抛出 ConcurrentModificationException 异常。

你可能感兴趣的:(后端)