gpt4 book ai didi

java - 为什么 CopyOnWriteArrayList 使用额外的内存进行设置、添加操作

转载 作者:行者123 更新时间:2023-11-30 06:36:08 25 4
gpt4 key购买 nike

根据我对更新 CopyOnWriteArrayList 中数据的理解。 set方法使用ReentrantLock进行锁定,数据被复制到一个局部变量中,将要添加的数据添加到这个局部变量中,然后将其作为整个List数据进行更新。与 Vector 和 SynchronizedList 的 set 方法的同步版本相比,这样做有什么优势

最佳答案

Is there any advantage of doing this over synchronized version of set method of Vector and synchronizedList

例如,您不能在一个线程中迭代 synchronizedList 并在另一个线程中修改它。您将收到 ConcurrentModificationException。对于 CopyOnWriteArrayList 永远不会发生这种情况,因为迭代器的底层数据结构永远不会被修改。

Javadoc中的描述清楚地说明了优点和缺点。

关于java - 为什么 CopyOnWriteArrayList 使用额外的内存进行设置、添加操作,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/45181479/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com