旧有的集合
a、Vector / HashTable 线程安全(不建议使用)
b、ArrayList / HashMap 取代,但是二者线程不安全
需要把二者处理一下:
//1、处理
List synchArrayList = Collections.synchronizedList(new ArrayList());
Map synchHashMap = Collections.synchronizedMap(new HashMap());
//2、使用。但是如果使用这种被包装过的collection,必须使用同步块访问
synchronized (synchHashMap){
Iterator iter = synchHashMap.keySet().iterator();
while (iter.hasNext()) . . .;
}
新增线程安全且高效的集合
java.util.concurrent包
ConcurrentLinkedQueue 可被多线程安全访问的无边界的非阻塞队列
ConcurrentHashMap 可被多线程安全访问的散列映射表 |
|