List,Map,Set 线程安全性
接口 | 具体实现类 | 安全性 |
List | ArrayList | 不安全 |
| LinkedList | 不安全 |
| Vector/Stack | 安全 |
Map | HashMap | 不安全 |
| Hashtable | 安全 |
| LinkedHashMap | 不安全 |
| TreeMap | 不安全 |
| WeakHashMap | 不安全 |
Set | HashSet | 不安全 |
| LinkedHashSet | 不安全 |
| TreeSet | 不安全 |
参考帮助文档:注意,此实现不是同步的。(不安全)
大部分集合类都是不安全的,
可通过如下方法同步
1.使用Collections. 构建同步
List list = Collections.synchronizedList(new ArrayList());
...
synchronized(list) {
Iterator i = list.iterator(); // Must be in synchronized block
while (i.hasNext())
foo(i.next());
}
2.使用ThreadLocal<T>封装