Java基础
List
集合中线程安全的方案:
Collections.synchronizedList(arrayList);
Vector
CopyOnWriteArrayList
Collections.synchronizedListCollections.synchronizedList 使用了装饰者模式,将原本的List包装了一层,在调用List原本的方法时,通过多态进行加锁操作,这里我们注意:读写操作加锁,获取迭代器不加锁
public boolean add(E e) {
synchronized (mutex) {return c.add(e);}
}
public E get(int index) {
synchronized (mutex) {return list.get(index);}
}
public Iterator<E> iterator() {
return list.iter ...