目录:
List
ArrayList
不是线程安全类,在多线程同时写的情况下,会抛出java.util.ConcurrentModificationException
异常。
//Demo
private static void listNotSafe() {
List<String> list=new ArrayList<>();
for (int i = 1; i <= 30; i++) {
new Thread(() -> {
list.add(UUID.randomUUID().toString().substring(0, 8));
System.out.println(Thread.currentThread().getName() + "\t" + list);
}, String.valueOf(i)).start();
}
}
报错信息:
Exception in thread "6" Exception in thread "14" Exception in thread "19" Exception in thread "26" Exception in thread "28" Exception in thread "29" java.util.ConcurrentModificationException
at java.util.ArrayList$Itr.checkForComodification(ArrayList