CopyOnWriteArrayList

原创
2014/01/21 11:13
阅读数 982

CopyOnWriteArrayList是ArrayList的一个线程安全变体,所有可变操作(add、set...)都可以通过对底层数组进行一次新的复制来实现。

虽然复制数组的开销挺大,但在下面两种情况下比较适用:

  1. 遍历操作数量远多于可变操作的数量时:比如观察者模式中侦听者列表适合用CopyOnWriteArrayList存储

  2. 不能或者不想进行同步遍历

对CopyOnWriteArrayList的迭代可以保证不会抛出ConcurrentModificationException,原因见第一段。类似的还有CopyOnWriteArraySet。



展开阅读全文
加载中
点击引领话题📣 发布并加入讨论🔥
打赏
0 评论
2 收藏
0
分享
返回顶部
顶部