/** * @author cf * @version 1.0 */ public class ConcurrentModificationException { public static void main(String[] args) { Map<String,String> map = new ConcurrentHashMap<String,String>();//new HashMap<String,String>(); 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<String> set = new CopyOnWriteArraySet<String>();//new HashSet<String>(); 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<String> list = new CopyOnWriteArrayList<String>(); //ConcurrentModificationException并发修改异常 List<String> list = new ArrayList<String>(); //多线程+高并发 ----> 写时复制技术 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(); } }
(CME并发修改异常)ConcurrentModificationException
猜你喜欢
转载自blog.csdn.net/qq_35400008/article/details/80218543
今日推荐
周排行