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>封装
本文详细解析了Java中List、Map、Set接口及其具体实现类在多线程环境下的线程安全性,并提供了同步集合类的方法。
1004

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



