线程安全集合CopyOnWriteArrayList

解决多线程的集合有以下几种

1、Vertor(所有方法上加synchronized锁)能保证多线程安全,数据一致,但性能低下一般不用

2、Collections.synchronizedList 方法 返回的List  在方法内部加锁,线程安全,数据一致,性能有提升

3、CopyOnWriteArrayList  内部数组volatile修饰,多线程可见,增删改操作时加锁,copy一份修改副本,再用副本覆盖原属性。线程安全,数据更新有延迟,查询性能高

 

为什么CopyOnWriteArrayList要写时拷贝:

volatile变量修饰的对象数组是引用类型,直接修改数组内部的话,array不会更新

copy副本覆盖对象会更改array变量,进而缓存一致刷新

本文作者:小万2333

本文链接:https://www.cnblogs.com/xiaowan2333/p/17072354.html

版权声明:本作品采用知识共享署名-非商业性使用-禁止演绎 2.5 中国大陆许可协议进行许可。

posted @   小万2333  阅读(37)  评论(1编辑  收藏  举报
相关博文:
阅读排行:
· 开源Multi-agent AI智能体框架aevatar.ai,欢迎大家贡献代码
· Manus重磅发布:全球首款通用AI代理技术深度解析与实战指南
· 被坑几百块钱后,我竟然真的恢复了删除的微信聊天记录!
· 没有Manus邀请码?试试免邀请码的MGX或者开源的OpenManus吧
· 园子的第一款AI主题卫衣上架——"HELLO! HOW CAN I ASSIST YOU TODAY
点击右上角即可分享
微信分享提示
💬
评论
📌
收藏
💗
关注
👍
推荐
🚀
回顶
收起
  1. 1 404 not found REOL
404 not found - REOL
00:00 / 00:00
An audio error has occurred.