CopyOnWriteArrayList
1. 与vector以及Collections.synchronizedList()实现原理上的区别
1、vector是通过在每个方法加synchronized实现,包括最简单的size()方法
public synchronized int size() {
return elementCount;
}
public synchronized boolean isEmpty() {
return elementCount == 0;
}
2、synchronizedList是通过在每个方法内部加 synchronized实现,包括最简单的size()方法
public int size() {
synchronized (mutex) {return m.size();}
}
public boolean isEmpty() {
synchronized (mutex) {return m.isEmpty();}
}
public boolean containsKey(Object key) {
synchronized (mutex) {return m.containsKey(key);}
}
public boolean containsValue(Object value) {
synchronized (mutex) {return m.containsValue(value);}
}
public V get(Object key) {
s