【发布时间】:2017-10-29 07:59:34
【问题描述】:
java 中有故障安全迭代器,它创建集合的副本以进行迭代以提供故障安全行为。
枚举适用于遗留 Java 类 Vector、Stack 和 HashTable 等(这些是同步集合)。
Java 中的枚举如何实现故障安全,它如何提供故障安全行为? 它是否也为迭代创建了集合的副本?
【问题讨论】:
-
您所说的“故障安全”是什么意思?
-
Like CouncurrentHashMap 迭代器是故障安全的,因为它创建了一个集合对象的副本以进行迭代,因此如果另一个线程试图改变集合对象的结构(通过添加或删除一个元素)它不会干扰迭代器。类似地,枚举也是一个故障安全迭代器,但它如何提供故障安全行为在这里受到质疑。
-
“枚举是故障安全的”语句的来源是什么?它不是,所以“为什么它是故障安全”的问题不适用。
标签: java enumeration