社区
Java SE
帖子详情
关于 ReentrantLock和CopyOnWriteArrayList一个疑惑
omg_self
2017-07-22 03:01:15
网上讲到CopyOnWriteArrayList读写分离,看了一下,是写的时候使用了ReentrantLock,读的过程中,新增一个副本;但是在写的过程中还可以进行读,那么这个锁ReentrantLock持有的锁对象(这也是一个疑问?ReentrantLock到底持有的什么)为什么还允许别的进程读???换成Synchronized可不可以??
...全文
285
3
打赏
收藏
关于 ReentrantLock和CopyOnWriteArrayList一个疑惑
网上讲到CopyOnWriteArrayList读写分离,看了一下,是写的时候使用了ReentrantLock,读的过程中,新增一个副本;但是在写的过程中还可以进行读,那么这个锁ReentrantLock持有的锁对象(这也是一个疑问?ReentrantLock到底持有的什么)为什么还允许别的进程读???换成Synchronized可不可以??
复制链接
扫一扫
分享
转发到动态
举报
写回复
配置赞助广告
用AI写文章
3 条
回复
切换为时间正序
请发表友善的回复…
发表回复
打赏红包
我爱兔宝宝
2017-07-27
打赏
举报
回复
ReentrantLock是用来保证写操作是互斥的,可以替换为Synchronized 读写的数据不是同一份,所以读的时候是可以写的,只需要写完后,原子的将当前指针指向写入的新数据数组即可。
soton_dolphin
2017-07-27
打赏
举报
回复
ReentrantLock 有两点胜过用synchronized 1. ReentrantLock 有一个tryLock 方法,如果获得不到锁,会即刻放弃,不会造成死锁 2. ReentrantLock 可以跨不同的方法使用,在A方法里加锁,可以在B方法里解锁。 需要注意的是,解锁时,调用unlock方法的次数一定要和lock(), tryLock() 的次数一致。 如果少了,就会造成死锁,如果多了,就会抛出异常
soton_dolphin
2017-07-22
打赏
举报
回复
CopyOnWriteArrayList, 读的是副本的值,写的是原始list的值。
灵活运用Re
entr
ant
Lock
及volatile构造线程安全的
Copy
On
Write
ArrayList
首先在
Copy
On
Write
ArrayList
内部定义了
一个
private类型的数组,并提供getter setter方法,不过需要注意的是该对象数组是被volatile关键字修饰的(关于volatile关键字可以参考我的博客“关于volatile的使用”一文),...
Copy
On
Write
ArrayList
与 Collections.synchronizedList
Copy
On
Write
ArrayList
在写时会加锁,同时操作时会拷贝
一个
新的数组以存放新的字段 public void add(int index, E element) { final Re
entr
ant
Lock
lock
= l.
lock
;
lock
.
lock
(); try { ..
Copy
On
Write
ArrayList
类set方法
疑惑
?
在淘宝内网有位同事提了
一个
很好的问题,大家能否帮忙解答下? 在
Copy
On
Write
ArrayList
类的set方法中有一段setArray(elements)代码,实际上这段代码并未对elements做任何改动,实现的volatile语意并不对...
Copy
On
Write
ArrayList
学习笔记
Copy
On
Write
ArrayList
是
ArrayList
的
一个
线程安全的变体,其中所有可变操作(add、set 等等)都是通过对底层数组进行一次新的复制来实现的,所以需要很大的开销。
Copy
On
Write
ArrayList
中的set方法随记
上下文环境移步
Copy
On
Write
ArrayList
类set方法
疑惑
? [java] view plain
copy
print? /** The array, accessed only via getArray/setArray. */ private volatile tr
Java SE
62,612
社区成员
307,332
社区内容
发帖
与我相关
我的任务
Java SE
Java 2 Standard Edition
复制链接
扫一扫
分享
社区描述
Java 2 Standard Edition
社区管理员
加入社区
获取链接或二维码
近7日
近30日
至今
加载中
查看更多榜单
社区公告
暂无公告
试试用AI创作助手写篇文章吧
+ 用AI写文章