首页 > 其他 > 详细

集合(二)

时间:2019-03-25 17:08:03      阅读:120      评论:0      收藏:0      [点我收藏+]

关于迭代器(Iterator)的两种迭代机制:fail-fast 和 fail-safe

fail-fast 机制:遍历集合时,当集合结构被修改,会抛出Concurrent Modification Exception

触发条件:单线程在遍历过程修改,remove()不会触发;多线程中一个线程遍历时另一个线程在进行修改

实现方法:在迭代器内部标记了一个mode,集合进行修改时,mode会发生改变,在迭代过程中,每次next(),hashNext()都会去检查这个标记是否发生变化

 

fail-safe机制:对集合结构的修改会在一个clone的集合中修改,不会抛出该错误

问题:复制集合产生大量无效对象,系统开销大;无法保证当前读取数据是最新的数据

fail-fast和 fail-safe对比

 

Throw ConcurrentModification Exception Yes No
Clone object No Yes
Memory Overhead No Yes
Examples HashMap,Vector,ArrayList,HashSet CopyOnWriteArrayList,ConcurrentHashMap

集合(二)

原文:https://www.cnblogs.com/jhin-wxy/p/10594619.html

(0)
(0)
   
举报
评论 一句话评论(0
关于我们 - 联系我们 - 留言反馈 - 联系我们:wmxa8@hotmail.com
© 2014 bubuko.com 版权所有
打开技术之扣,分享程序人生!