ArrayList(二)
ArrayList是线程不安全的
现象
java.util.ConcurrentModificationException
不安全原因
- add方法没有加锁 ->并发争夺修改导致。
解决方案
- Vector
- Collections.synchronizedList(new ArrayList<>()); –> 同步锁
- new CopyOnWriteArrayList<>();
- 读写分离的思想;
- 加锁 ->copy -> 扩容 + 1 -> 传递引用
- 读写分离的思想;
- new ConcurrentHashMap<>();
近期评论