Java:CopyOnWriteArrayList vs synchronizedList
CopyOnWritearraylist
和Collections.synchronizedList(..)
什么区别? 什么时候应该优先于另一个。
当读取次数大大超过写入次数时,应使用CopyOnWriteArrayList
列表。 这是因为您在每次写入时都要进行不必要的同步以进行昂贵的arrays复制。
例如,当您在multithreading环境中拥有事件侦听器List
时,您需要使用CopyOnWriteArrayList
,因为
- 事件被触发,因此列表经常被迭代
- 事件监听器很少注册