Java并发编程-CopyOnWriteArrayList
2015-06-05 11:08
260 查看
CopyOnWriteArrayList原理 首先每次写操作,都将数组copy一份,并赋值给arrays 读操作读不加锁 写操作加锁 ReentrantLock 因为每次写都要copy数组,这是一项繁重的操作,因此 CopyOnWriteArrayList适合读多写少的情况。 add方法的源码如下:
参考文章:
http://blog.csdn.net/wjwj1203/article/details/8109000
/article/6625914.html
public boolean add(E e) { final ReentrantLock lock = this.lock; lock.lock(); try { Object[] elements = getArray(); int len = elements.length; Object[] newElements = Arrays.copyOf(elements, len + 1); newElements[len] = e; setArray(newElements); return true; } finally { lock.unlock(); } }
参考文章:
http://blog.csdn.net/wjwj1203/article/details/8109000
/article/6625914.html
相关文章推荐
- eclipse快捷键大全
- 使用jackson对Java对象与JSON字符串相互转换的一些总结
- JAVA基础——使用DOM4J 解析xml
- JAVA 对象引用,以及对象赋值(很好的解释)
- java 汉字排序(java.text.Collator)
- java读取xml文件内容
- 安装QTP之后造成环境变量java冲突问题的解决方案
- MyEclipse — Maven+Spring+Struts+Hibernate 整合 [学习笔记-5]
- BIO-NIO-AIO(Java版)
- Java静态变量初始化时机
- Java调用WebService接口实现发送手机短信验证码功能
- 关于Java通过JNI调用C 动态链接库(DLL)
- Java中的正则表达式中的中文
- 在Eclipse中添加Servlet-api.jar的方法
- opencv中的Java库
- Java设计模式 —— 单例(Singleton)
- 一天教你入门struts2
- java.lang.NoClassDefFoundError: org/springframework/aop/TargetSource错误
- 配置JAVA的环境变量
- 7 个改变世界的 Java 项目