集合类不安全之并发修改异常和写时复制
public class ContainNotSafeDemo {
public static void main(String[] args) {
/**
* 1.故障现象
* java.util.ConcurrentModificationException
* 2.导致原因
* 3.解决方案
* 3.1 Vector
* 3.2 Collections.synchronizedList(new ArrayList<>());
* 3.3 new CopyOnWriteArrayList<>();
*/
List<String> list = new CopyOnWriteArrayList<>();
list.forEach(System.out::println);
for (int i = 0; i < 30; i++) {
new Thread(() -> {
list.add(UUID.randomUUID().toString().substring(0,8));
System.out.println(list);
}, String.valueOf(i)).start();
}
}
}
本文深入探讨了Java中并发修改集合引发的`ConcurrentModificationException`异常,分析了其原因,并提出了解决方案,包括使用`Vector`、`Collections.synchronizedList`和`CopyOnWriteArrayList`。示例代码展示了如何通过`CopyOnWriteArrayList`避免并发修改异常,同时在多线程环境下进行元素添加操作。
663

被折叠的 条评论
为什么被折叠?



