写时复制

CopyOnWrite容器:当往容器里面添加元素的时候,不直接向容器的Object[]里面添加,而是先将当前的数组进行复制,复制出一个新的数组 Object[] newElements,然后往新的数组中的最后一位添加元素.添加完以后要将原来指向数组的引用指向新的数组,通过setArray(newElements)完成.这样做的好处就是可以对CopyOnWrite容器进行并发的读,而不需要加锁,因为当前容器不会添加任何的元素.所以说CopyOnWrite是一种读写分离的思想.

三种集合对应的高并发类

List-> CopyOnWriteArrayListSet -> CopyOnWriteArraySetMap -> ConcurrentHashMap

下面是add方法的源码,其实对应的就是上述的过程:

最后修改日期:2020-07-13

作者

留言

撰写回覆或留言

发布留言必须填写的电子邮件地址不会公开。