Java读锁和写锁的区别_读锁跟写锁的区别

若网站将链接屏蔽,可直接拷贝原文链接到地址栏跳转观看,原文链接:https://www.cnblogs.com/wengshuhang/p/9866459.html

读锁:读读不互斥

写锁:独占

lock下有读写锁 ReenTrantReadWriteLock

synchronized 是独占的

1.Java并发库中ReetrantReadWriteLock实现了ReadWriteLock接口并添加了可重入的特性

2.ReetrantReadWriteLock读写锁的效率明显高于synchronized关键字

3.ReetrantReadWriteLock读写锁的实现中,读锁使用共享模式;写锁使用独占模式,换句话说,读锁可以在没有写锁的时候被多个线程同时持有,写锁是独占的

4.ReetrantReadWriteLock读写锁的实现中,需要注意的,当有读锁时,写锁就不能获得;而当有写锁时,除了获得写锁的这个线程可以获得读锁外,其他线程不能获得读锁

关于lock的详细进阶内容可看我的另一篇博客

long long after:

补充: 锁,这种东西其实就是为了保护数据不被并发给 搞炸了, 然而, 当真正拥有极大量数据并发的时候, 锁其实已经满足不了 一些场景了, 因为会造成大量 的资源请求的竞争,只有一个线程抢到资源, 其他大量的请求都等着, 这样无疑对其他请求来说 是一个很慢的 响应。

可以用其他的方式来解决锁的问题, 比如事后的补偿机制。 至于该不该用锁,其实也应该根据现场的实际情况来抉择。 如果 锁的 速度比其他方式的响应速度 更快 或者差不多,那其实也没必要用其他方式来做,还是得看实际的情况。

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值