码迷,mamicode.com
首页 > 编程语言 > 详细

java modCount和fail-fast

时间:2019-04-24 00:24:50      阅读:140      评论:0      收藏:0      [点我收藏+]

标签:one   array   edm   bsp   初始化过程   count   lis   nbsp   str   

在迭代遍历线程不安全的集合的时候,如ArrayList,如果其他线程修改了该集合,那么将抛出ConcurrentModificationException,这就是 fail-fast 策略。

modCount记录了集合的修改次数,在迭代器初始化过程种会将这个值赋给迭代器的expectedModCount,在迭代过程中判断modCount是否和exceptedModCount相等,如果其他线程在这过程中修改了modCount,势必modCount!=exceptedModCount。比如,删除元素:

技术图片

 

在迭代过程种删除元素的时候会验证modCount

技术图片

技术图片

 

fail-fast机制,是一种错误检测机制。它只能被用来检测错误,因为JDK并不保证fail-fast机制一定会发生

java modCount和fail-fast

标签:one   array   edm   bsp   初始化过程   count   lis   nbsp   str   

原文地址:https://www.cnblogs.com/natian-ws/p/10759898.html

(0)
(0)
   
举报
评论 一句话评论(0
登录后才能评论!
© 2014 mamicode.com 版权所有  联系我们:gaon5@hotmail.com
迷上了代码!