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

被折叠的 条评论
为什么被折叠?



