JUC集合类不安全

本文探讨了在多线程环境下,List的并发修改异常及其解决方案——CopyOnWriteArrayList。CopyOnWriteArrayList通过写时复制策略确保了读写操作的分离,提高了读取性能,并避免了数据覆盖问题。相比Vector的全面加锁,CopyOnWriteArrayList在读多写少的场景下更为高效。同时,文章也提及HashSet在并发环境下的安全性问题。
摘要由CSDN通过智能技术生成

多线程下不安全

  List 不安全

java.util.ConcurrentModificationException 并发修改异常

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

Set不安全

HashSet底层是什么?

还没学完 下次写

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值