【多线程】Collections.synchronizedList生成线程安全的list的原理

ArrayList 不是线程安全,可以通过Collections.synchronizedList生成线程安全的list

Collections.synchronizedList(new ArrayList())

该方法的本质是:在对原始arraylist操作时,都会增加关键字synchronized 保证线程安全(类似静态代理)。

public E get(int index) {
   synchronized(mutex) {return list.get(index);}
        }
public E set(int index, E element) {
   synchronized(mutex) {return list.set(index, element);}
        }
public void add(int index, E element) {
   synchronized(mutex) {list.add(index, element);}
        }
public E remove(int index) {
   synchronized(mutex) {return list.remove(index);}
        }

猜你喜欢

转载自blog.csdn.net/wjx_jasin/article/details/82312752