fail-fast
fail-fast机制在遍历一个集合时,当集合结构被修改,会抛出ConcurrentModificationException。
fail-safe
fail-safe任何对集合结构的修改都会在一个复制的集合上进行修改,因此不会抛出ConcurrentModificationException。
fail-safe机制有两个问题
- 需要复制集合,产生大量的无效对象,开销大
- 无法保证读取的数据是目前原始数据结构中的数据。
java.util包下面的所有的集合类都是快速失败的,而java.util.concurrent包下面的所有的类都是安全失败的。
网友评论