- 1
- 0
- 约1.93千字
- 约 2页
- 2026-07-09 发布于北京
- 举报
/***创建一个空列表。*/
public
CopyOnWriteArrayList(){
setArray(newObject[0]);}
从上面这段构造函数的代码,就可以看出来,CopyOnWriteArrayList其实也是底层基于数
组来实现的,List数据结构,要实现各种线程安全性
/**数组,仅通过getArray/setArray。*/
privatetransientvolatileObject[]array;
的底层数据结构是数组,volatile,保证多线程读写的可见性,只要有一个线程修改了这
个数组,其他的线程立马是可以读到的
/**保护所有修改操作的锁*/finaltransient
ReentrantLocklock=newReentrantLock();
每个CopyOnWriteArrayList底层都对应一个数据结构,Object[]数组,同时还对应了一个
一
ReentrantLock独占锁,就是用独占锁来保证说要修改Object[]数组的时候,必须加独占锁,
此时只能有一个线程获取锁
独占锁保证了,只有一个线程可以来修改底层的数组里的数据。
增删改操作的时候
原创力文档

文档评论(0)