原标题:java的写入时复制容器的例子以及该容器的优缺点
写入时复制CopyOnWriteArrayList
CopyOnWriteArrayList使用了保护性复制的策略。它并不是在遍历列表前进行复制,而是在列表被修改时进行,已经投入使用的迭代器会使用当时的旧副本。
使用了CopyOnWriteArrayList的好处
首先,使用了CopyOnWriteArrayList的代码会变得非常简洁。其次,代码将变得更高效,只在listeners被更新时创建副本(更新listeners的概率相对较低)。
CopyOnWriteArrayList缺点
1.内存占有问题。两个数组同时驻扎在内存中,占用内存会比较大,可以用ConcurrentHashMap来解决。
2.数据一致性。CopyOnWriteArrayList容器只能保证数据的最终一致性,不能保证数据的实时一致性。如果写入的的数据需要实时读到不能使用CopyOnWriteArrayList。
洱海网 www.erhainews.com 2018-02-20 19:33:25
本文地址: https://www.erhainews.com/n6829842.html
CopyOnWriteArrayList 复制 内存 写入 一致性