线程安全和不安全的集合列

java集合里面的ArrayList,LinkedList,HashSet,TreeSet,HashMap,TreeMap等都是线程不安全的,如果程序中有多个线程可能访问以上这些集合,那么我们可以使用Collections提供的静态方法把这些集合包装成线程安全的集合。Collections提供了如下几个静态方法。

<T> Collection <T> synchronizedCollection(Collection<T>c)

static<T>List<T>synchronizedList(List<T>list)

static<K,V>Map<K,V>synchronizedMap(Map<k,v>m)

static<T>Set<T>synchronizedSet(Set<T>s)

static<K,V>StoredMap<K,V>synchronizedStoredMap(StoredMap<K,V>m)

static<T>StoredSet<T>synchronizedStoredSet(StoredSet<T>s)

例如:HashMap m = Collections.synchronizedMap(new HashMap());

线程安全的结合类

以Concurrent开头的集合类,如ConcurrentHashMap,ConcurrentSkipListMap,ConcurrentSkipListSet,

ConcurrentLinkedQueu。

以CopyOnWrite开头的集合类,如CopyOnWriteArrayList,CopyOnWriteArraySet

你可能感兴趣的:(线程安全和不安全的集合列)