通过Collections来自动同步整个容器,但不适用的时候也是报错的。
public class Synchronization {
public static void main(String[] args) {
Collection<String> c = Collections.synchronizedCollection( new ArrayList<String>());
List<String> list = Collections.synchronizedList(new ArrayList<String>());
Set<String> s = Collections.synchronizedSet( new HashSet<String>());
Set<String> ss = Collections.synchronizedSortedSet( new TreeSet<String>());
Map<String, String> m = Collections.synchronizedMap(new HashMap<String, String>());
Map<String, String> sm = Collections.synchronizedSortedMap(new TreeMap<String, String>());
}
}
并发容器的使用
public class TestConcurrent {
public static void main(String[] args) {
ConcurrentHashMap concurrentHashMap = new ConcurrentHashMap();
concurrentHashMap.put("aa","111");
concurrentHashMap.put("bb","222");
concurrentHashMap.put("cc","333");
Iterator iterator = concurrentHashMap.entrySet().iterator();
concurrentHashMap.put("dd","444");
System.out.println(iterator.next());
concurrentHashMap.put("ee","555");
System.out.println(iterator.next());
System.out.println(iterator.next());
System.out.println(iterator.next());
System.out.println(iterator.next());
}
}