失败安全与失败快速迭代器(向量)

时间:2015-09-20 22:52:35

标签: java vector iterator

我正在研究快速失败和失败的安全迭代器,我想到了这个问题。我不确定我的理解是否正确。

Vector是Java中的同步线程安全集合对象。因此,当我尝试获取向量的迭代器时,它是一个失败的快速迭代器,这意味着。 。当我在向量对象上使用此迭代器以及对向量进行的任何更改时,它将抛出ConcurrentModificationExeption。但由于vector是线程安全的,因此应该提供故障安全迭代器。

为什么Java中没有vector的情况。与concurrentHashMap一样,它提供了线程安全迭代器。

1 个答案:

答案 0 :(得分:0)

是的,Vector是线程安全的,而vector的迭代也是安全的。它是一个遗留类,后来引入1.0版本。太阳人做了耐火工程师并添加到List界面所以我们可以使用所有List接口的方法以及Vector如果我们将使用迭代器迭代Vector对象,那么它将抛出concurrentModificationException,但是如果我们将使用Enumeration Interface迭代vector,那么它将不会抛出任何并发的Modification Exception。例如:在这个示例中,主线程正在迭代vector和child thread中的元素正在更新现有的vector对象,我们没有得到任何concurrentModificationException

uint

}