集合类不安全之并发修改异常和写时复制
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();
}
}
}