線程安全的Set:
1 java.util.Collections.synchronizedSet(Sets.newHashSet()); // jdk提供的,使用同步來保證線程安全 2 new java.util.concurrent.CopyOnWriteArraySet<>(); // jdk提供的,底層使用 CopyOnWriteArrayList 實現,適合集合大小較小的場景 3 com.google.common.collect.Sets.newConcurrentHashSet(); // guava 提供的線程安全的 Set ,底層使用 ConcurrentHashMap 實現 4 com.alibaba.dubbo.common.utils.ConcurrentHashSet // 底層使用 ConcurrentHashMap 實現
綜上可以看出,線程安全的 Set 底層選用 ConcurrentHashMap 的居多
線程安全的 List:
1 java.util.Collections.synchronizedList(new ArrayList()) 2 java.util.concurrent.CopyOnWriteArrayList