故障现象
java.util.ConcurrentModificationException
解决方案
new Vector<>();
Collections.synchronizedList(new Arraylist<>());
new CopyOnWriteArrayList<>();写时复制
CopyOnWrite 容器即写时复制的容器,往一个容器添加元素的时候,不直接往当前容器添加元素,而是先将当前容器复制一份,往新的容器里添加元素,添加完元素之后,再将原容器的引用指向新的容器。这样做的好处是可以对CopyOnWirte容器进行并发的读,而不需要加锁,因为当前容器不会添加任何元素。所以CopyOnWrite容器也是一种读写分离的思想,读和写不同的容器。
集合类不安全之Set
new CopyOnWriteArraySet<>() 底层也是CopyOnWriteArrayLis
集合类不安全之Map
new ConcurrentHashMap<>();