/** * @author cf * @version 1.0 */ public class ConcurrentModificationException { public static void main(String[] args) { Mapmap = new ConcurrentHashMap ();//new HashMap (); for (int i = 1; i <=25; i++) { new Thread(() -> { map.put(Thread.currentThread().getName(),UUID.randomUUID().toString().substring(0, 9)); System.out.println(map); },String.valueOf(i)).start(); } // setNotSafe(); //listNotSafe(); } // 不安全 CME异常 并发修改异常 private static void setNotSafe() { Set set = new CopyOnWriteArraySet ();//new HashSet (); for (int i = 1; i <=25; i++) { new Thread(() -> { set.add(UUID.randomUUID().toString().substring(0, 9)); System.out.println(set); },String.valueOf(i)).start(); } } //arraylist 不安全 CME异常 并发修改异常 private static void listNotSafe() { // List list = new CopyOnWriteArrayList (); //ConcurrentModificationException并发修改异常 List list = new ArrayList (); //多线程+高并发 ----> 写时复制技术 for (int i = 1; i <=35; i++) { new Thread(() -> { list.add(UUID.randomUUID().toString().substring(0, 9)); System.out.println(list); },String.valueOf(i)).start(); } }