CopyOnWriteArrayList详解
2018-03-22 15:58
441 查看
Copy-On-Write简称COW,是一种用于程序设计中的优化策略。其基本思路是,从一开始大家都在共享同一个内容,当某个人想要修改这个内容的时候,才会真正把内容Copy出去形成一个新的内容然后再改,这是一种延时懒惰策略。从JDK1.5开始Java并发包里提供了两个使用CopyOnWrite机制实现的并发容器,它们是CopyOnWriteArrayList和CopyOnWriteArraySet。CopyOnWrite容器非常有用,可以在非常多的并发场景中使用到。
原理:
CopyOnWrite容器即写时复制的容器。通俗的理解是当我们往一个容器添加元素的时候,不直接往当前容器添加,而是先将当前容器进行Copy,复制出一个新的容器,然后新的容器里添加元素,添加完元素之后,再将原容器的引用指向新的容器。这样做的好处是我们可以对CopyOnWrite容器进行并发的读,而不需要加锁,因为当前容器不会添加任何元素。所以CopyOnWrite容器也是一种读写分离的思想,读和写不同的容器。
适用场景:读多写少,而且不要求读写数据实时一致性。因为当多个线程同时读写,那么读的其实还是旧的数据。这里可以用java.util.concurretn包下的ConcurrentHashMap
原理:
CopyOnWrite容器即写时复制的容器。通俗的理解是当我们往一个容器添加元素的时候,不直接往当前容器添加,而是先将当前容器进行Copy,复制出一个新的容器,然后新的容器里添加元素,添加完元素之后,再将原容器的引用指向新的容器。这样做的好处是我们可以对CopyOnWrite容器进行并发的读,而不需要加锁,因为当前容器不会添加任何元素。所以CopyOnWrite容器也是一种读写分离的思想,读和写不同的容器。
适用场景:读多写少,而且不要求读写数据实时一致性。因为当多个线程同时读写,那么读的其实还是旧的数据。这里可以用java.util.concurretn包下的ConcurrentHashMap
相关文章推荐
- CopyOnWriteArrayList详解
- CopyOnWriteArrayList详解
- CopyOnWriteArrayList详解
- CopyOnWriteArrayList详解
- CopyOnWriteArrayList详解
- CopyOnWriteArrayList详解
- CopyOnWriteArrayList 详解
- CopyOnWriteArrayList详解
- CopyOnWriteArrayList详解
- 深入Java集合学习系列:CopyOnWriteArrayList详解
- CopyOnWriteArrayList详解
- CopyOnWriteArrayList接口详解
- CopyOnWriteArrayList详解
- CopyOnWriteArrayList详解
- CopyOnWriteArrayList详解
- CopyOnWriteArrayList详解
- CopyOnWriteArrayList详解
- CopyOnWriteArrayList详解
- Java CopyOnWriteArrayList详解
- Java CopyOnWriteArrayList详解