1. 首页
  2. 编程语言
  3. Java
  4. java 中modCount 详解及源码分析

java 中modCount 详解及源码分析

上传者: 2022-02-26 10:54:10上传 PDF文件 71.88 KB 热度 7次

在ArrayList,LinkedList,HashMap等等的内部实现增,删,改中我们总能看到modCount的身影,modCount字面意思就是修改次数,但为什么要记录modCount的修改次数呢?大家发现一个公共特点没有,所有使用modCount属性的全是线程不安全的,这是为什么呢?这一策略在源码中的实现是通过 modCount 域,modCount 顾名思义就是修改次数,对HashMap 内容的修改都将增加这个值,那么在迭代器初始化过程中会将这个值赋给迭代器的 expectedModCount。在迭代过程中,判断 modCount 跟 expectedModCount 是否相等,如果不相等就表示已经有其他线程修改了 Map:注意到 modCount 声明为 volatile,保证线程之间修改的可见性。所以在这里和大家建议,当大家遍历那些非线程安全的数据结构时,尽量使用迭代器感谢阅读,希望能帮助到大家,谢谢大家对本站的支持!

下载地址
用户评论