zoukankan      html  css  js  c++  java
  • 3.3.5 高效读取:不变模式下的CopyOnWriteArrayList

    码分析:读写(get,add)

      一:get 方法

    private E get(Object[] a, int index) {
    return (E) a[index];
    }
    可以看到读取数据的时候 没有添加任何限制。和ArrayList的方法一致
    二:add 方法

    1.public boolean add(E e) {
    2. final ReentrantLock lock = this.lock;
    3. lock.lock();
    4. try {
    5. Object[] elements = getArray();
    6. int len = elements.length;
    7. Object[] newElements = Arrays.copyOf(elements, len + 1);
    8. newElements[len] = e;
    9. setArray(newElements);
    return true;
    } finally {
    lock.unlock();
    }
    }
    可以看到在写入的时候 使用了ReentrantLock进行控制 ,可以看到在第7步,CopyOnWriteArrayList是先复制一个当前的list,并且在复制的list进行写入,然后写入成功,在步骤9将新的list赋值给当前的list




    
    
  • 相关阅读:
    FPGA-中值滤波
    FPGA-中值滤波
    FPGA-shift_ram代码
    FPGA实现-shift_ram_3x3矩阵实现
    图像处理-中值滤波
    python-str
    ignore-certificate-errors(chrome)
    selenium-python-Cookie跳过登录验证码
    Angular2
    Angular2
  • 原文地址:https://www.cnblogs.com/anxbb/p/8467146.html
Copyright © 2011-2022 走看看