通过Collections来自动同步整个容器,但不适用的时候也是报错的。
    image.png

    1. public class Synchronization {
    2. public static void main(String[] args) {
    3. Collection<String> c = Collections.synchronizedCollection( new ArrayList<String>());
    4. List<String> list = Collections.synchronizedList(new ArrayList<String>());
    5. Set<String> s = Collections.synchronizedSet( new HashSet<String>());
    6. Set<String> ss = Collections.synchronizedSortedSet( new TreeSet<String>());
    7. Map<String, String> m = Collections.synchronizedMap(new HashMap<String, String>());
    8. Map<String, String> sm = Collections.synchronizedSortedMap(new TreeMap<String, String>());
    9. }
    10. }

    并发容器的使用

    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());
        }
    }