1

这是添加元素的代码,为什么不使用 ReentrantReadWriteLock 而使用 ReentrantLock

 public boolean add(E e) {
        final ReentrantLock lock = this.lock;
        lock.lock();
        try {
               //add element 
        } finally {
            lock.unlock();
        }
}
4

1 回答 1

1

实现的重点CopyOnWriteArrayList是读操作根本不做任何锁定。

所以由于只有写操作需要加锁,而且都需要获取排他锁,所以ReentrantLock这里使用类更简单、更高效。

于 2021-12-20T02:28:48.567 回答