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);}
}
本文介绍如何将ArrayList转换为线程安全的List,并通过Collections.synchronizedList方法实现。具体原理是在原始ArrayList的操作上增加了synchronized关键字,确保了多线程环境下的安全性。
619

被折叠的 条评论
为什么被折叠?



