读写锁及锁降级

看完了《Java并发编程的艺术》后,感觉对锁这一快好像有了一个大概念的体系了。但是细节上可能还是有些不清楚,这里对读写锁做一个学习的记录

常见的业务场景都是读多写少,对于读写锁来说,其允许多个线程同时进行读操作,单手只能有一个线程进行写操作,且这个写操作不能喝读操作同时进行。写锁的解锁会自己完成其他线程的可见。

如果要在Java5前实现这一功能,只能通过synchronized的等待通知机制。比较起来,读写锁的性能和开发程度会更好。

一般来说,读写锁的性能会比排它锁好,其拥有的特性如下(ReentrantReadWriteLock)
在这里插入图片描述

ReentrantReadWriteLock的一些API
在这里插入图片描述

使用ReentrantReadWriteLock的用法:

public class Cache {
    
    static Map map = new HashMap(); 
    static ReentrantReadWriteLock rwl = new ReentrantReadWriteLock(); 
    static Lock r = rwl.readLock(); 
    static Lock w = rwl.writeLock
  • 0
    点赞
  • 1
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值