CopyOnWriteArrayList和syncedList之间的区别
根据我的理解,并发集合类优先于同步集合,因为并发集合类不会锁定整个集合对象。相反,它们在集合对象的一小部分上获取锁。
但是当我检查方法时,我们正在获取对完整集合对象的锁定。那么为什么比返回的列表更好呢?我在方法中看到的唯一区别是,每次调用该方法时,我们都会创建该数组的副本。add
CopyOnWriteArrayList
CopyOnWriteArrayList
Collections.synchronizedList
add
CopyOnWriteArrayList
add
public boolean add(E e) {
final ReentrantLock lock = this.lock;
lock.lock();
try {
Object[] elements = getArray();
int len = elements.length;
Object[] newElements = Arrays.copyOf(elements, len + 1);
newElements[len] = e;
setArray(newElements);
return true;
} finally {
lock.unlock();
}
}