Fail-Fast机制

来源:互联网 发布:java身份证正则 编辑:程序博客网 时间:2024/05/10 22:17

由于HashMap(ArrayList)并不是线程安全的,因此如果在使用迭代器的过程中有其他线程修改了map(这里的修改是指结构上的修改删除或者,并非指单纯修改集合内容的元素),那么将要抛ConcurrentModificationException 即为fail-fast策略
主要通过modCount域来实现,保证线程之间的可见性,modCount即为修改次数,对于HashMap(ArrayList)内容的修改就会增加这个值, 那么在迭代器的初始化过程中就会将这个值赋值给迭代器的expectedModCount
但是fail-fast行为并不能保证,因此依赖于此异常的程序的做法是错误的

0 0