public class ListNotSafe {

    public static void main(String[] args) {
        List<String> list = new CopyOnWriteArrayList<>();

        //java.util.ConcurrentModificationException 并发修改异常 ArrayList线程不安全
        for(int i = 1; i <= 300; ++i){
            new Thread(() -> {
                list.add(UUID.randomUUID().toString().substring(0, 8));
                System.out.println(list);
            }, String.valueOf(i)).start();
        }
    }
}

// CopyOnWriteArrayList 的 add() 方法的源码
public boolean add(E e) {
        synchronized (lock) {
            Object[] es = getArray();
            int len = es.length;
            es = Arrays.copyOf(es, len + 1);
            es[len] = e;
            setArray(es);
            return true;
        }
    }