多线程下不安全
List 不安全
java.util.ConcurrentModificationException 并发修改异常
CopyOnWrite 写入时复制 COW 计算机程序设计领域的一种优化策略;
多个线程调用的时候,list,读取的时候,固定的,写入(覆盖)
在写入的时候避免覆盖,造成数据问题!
读写分离
为什么线程安全用Copy 不用Vector
Vector
的每个方法都进行了加锁,而
CopyOnWriteArrayList
的读操作是不加锁的,因此
CopyOnWriteArrayList
的读性能远高于
Vector
,
Vector
每次扩容的大小都是原来数组大小的
2
倍,而
CopyOnWriteArrayList
不需要扩容,通过COW思想就能使数组容量满足要求。两个集合都实现了
RandomAccess
接口,支持随机读取,因此更加推荐使用for循环进行遍历。在开发中,读操作会远远多于其他操作,因此使用
CopyOnWriteArrayList
集合效率更高
Set不安全
HashSet底层是什么?
还没学完 下次写