zoukankan      html  css  js  c++  java
  • modcount的作用

    在一个迭代器初始的时候会赋予它调用这个迭代器的对象的modcount,如果在迭代器遍历的过程中,一旦发现这个对象的modcount和迭代器中存储的modcount不一样那就抛异常
    完整解释 :
    Fail-Fast  机制
    我们知道 java.util.HashMap 不是线程安全的,因此如果在使用迭代器的过程中有其他线程修改了map,那么将抛出ConcurrentModificationException,这就是所谓fail-fast策略。这一策略在源码中的实现是通过 modCount 域,modCount 顾名思义就是修改次数,对HashMap 内容的修改都将增加这个值,那么在迭代器初始化过程中会将这个值赋给迭代器的 expectedModCount。在迭代过程中,判断 modCount 跟 expectedModCount 是否相等,如果不相等就表示已经有其他线程修改了 Map:注意到 modCount 声明为 volatile,保证线程之间修改的可见性。
    所以建议当大家遍历那些非线程安全的数据结构时,尽量使用迭代器。
  • 相关阅读:
    HTML
    汉企,新的起点
    表格标签
    常用标签
    HTML
    我的未来规划
    世界首富如何炼成? 看盖茨20条箴言
    获取Java项目根目录 N多方法(转载)
    进程间通信——管道
    necessitas
  • 原文地址:https://www.cnblogs.com/wl889490/p/12773805.html
Copyright © 2011-2022 走看看