CopyOnWriteArrayList工作原理和实例

版权声明:本文为博主原创文章,遵循 CC 4.0 by-sa 版权协议,转载请附上原文出处链接和本声明。
本文链接:https://blog.csdn.net/iteye_5555/article/details/82062058

CopyOnWriteArrayList顾名思义,在写入操作时,copy源数组到新的数组中,而读取时,是从源数组去读的,因为写入操作是在另外一个数组中执行,因此在读取时,不用进行线程同步,但是要注意一点,copy数组的开销在数据量大的情况下,非常耗资源,因此,它的使用场景,适合于读取远大于写入操作的场景。当然,在写入时,是有锁的,JDK中的实现是采用重入显式锁进行锁定的。当写操作完成以后再将源数组的引用指向copy的数组,最后释放锁。

 

主要方法如下:

 public boolean add(E e)

  public void add(int index, E element)

public E get(int index)

public E set(int index, E element)

remove(i);

public int lastIndexOf(Object o)

 public boolean addIfAbsent

 

展开阅读全文

没有更多推荐了,返回首页