Java:CopyOnWriteArrayList vs synchronizedList

时间:2010-10-01 19:53:39

标签: java collections

CopyOnWritearraylistCollections.synchronizedList(..)之间有什么区别?什么时候应该优先于另一个。

1 个答案:

答案 0 :(得分:18)

当读取次数远远超过写入次数时,应使用

CopyOnWriteArrayList列表。这是因为您在每次写入时都要进行不必要的同步以进行昂贵的阵列复制。

例如,当您在多线程环境中拥有List个事件侦听器时,您需要使用CopyOnWriteArrayList,因为

  • 事件被触发,因此列表经常被迭代
  • 事件监听器很少注册