Java并发包之CopyOnWriteArrayList类的深入讲解

qqstrategy55120 14 0 pdf 2021-06-14 23:06:45

在单线程环境下,ArrayList就可以满足要求。多线程时,我们可以使用CopyOnWriteArrayList来保证数据安全。这是因为在ArrayList的remove()方法中,有一个参数modCount 专门用来记录修改的次数,每删除一次就modCount++。值得注意的是,CopyOnWriteArrayList的迭代器实现里的remove()方法会直接抛出异常,因此在使用迭代器遍历元素时,不能删除元素。由于 CopyOnWrite 容器的修改是先修改副本,所以这次修改对于其他线程来说,并不是实时能看到的,只有在修改完之后才能体现出来。

Java并发包之CopyOnWriteArrayList类的深入讲解

Java并发包之CopyOnWriteArrayList类的深入讲解

Java并发包之CopyOnWriteArrayList类的深入讲解

Java并发包之CopyOnWriteArrayList类的深入讲解

用户评论
请输入评论内容
评分:
暂无评论