当我们需要一个线程安全的Set集合,怎么办?
- java1.6已经帮我们实现了
Set<String> acceptedClassLoaders = Collections.newSetFromMap(new ConcurrentHashMap(16));
- 谷歌的guava其实已经实现了线程安全的ConcurrentHashSet
Set<String> s = Sets.newConcurrentHashSet();
//源码
public static <E> Set<E> newConcurrentHashSet() {
return newSetFromMap(new ConcurrentHashMap<E, Boolean>());
}
static <E> Set<E> newSetFromMap(Map<E, Boolean> map) {
return Collections.newSetFromMap(map);
}
-
spring里的CachedIntrospectionResults类也使用了
image.png - 大家在开发中需要的话,可以放心使用
网友评论