适用于使用CopyOnWriteArrayList时
这个问题在这里已经有了答案:
基于javadoc,
java.util.ArrayList的线程安全变体,其中所有可变操作(add,set等)都通过创建底层数组的全新副本来实现。
正如你所看到的,对容器的任何修改都是昂贵的,特别是当容器中的数据量很大时。
当修改频率较低时,最好使用CopyOnWriteArrayList
。 正如JCIP所建议的那样 ,
写入时复制集合仅适用于迭代比修改更普遍的情况。
例如事件通知系统。 每次需要通知事件时它都会迭代容器,但只有在观察者发生变化时才会对其进行修改。 前者发生频率高,后者频率低。
链接地址: http://www.djcxy.com/p/76121.html