Redisson可重入读写锁

矫情吗;* 2023-01-03 14:10 228阅读 0赞

一、可重入读写锁概述

Redisson分布式可重入读写锁(RReadWriteLock) Java对象,实现了java.util.concurrent.locks.ReadWriteLock接口。其中读锁和写锁都继承了RLock接口。

分布式可重入读写锁允许同时有多个读锁一个写锁处于加锁状态。

二、实践

使用方式如下:

  1. RReadWriteLock rwlock = redisson.getReadWriteLock("锁的名字");
  2. // 最常见的使用方法
  3. rwlock.readLock().lock();
  4. // 或
  5. rwlock.writeLock().lock();

  1. // 10秒钟以后自动解锁
  2. // 无需调用unlock方法手动解锁
  3. rwlock.readLock().lock(10, TimeUnit.SECONDS);
  4. // 或
  5. rwlock.writeLock().lock(10, TimeUnit.SECONDS);
  6. // 尝试加锁,最多等待100秒,上锁以后10秒自动解锁
  7. boolean res = rwlock.readLock().tryLock(100, 10, TimeUnit.SECONDS);
  8. // 或
  9. boolean res = rwlock.writeLock().tryLock(100, 10, TimeUnit.SECONDS);
  10. ...
  11. lock.unlock();

发表评论

表情:
评论列表 (有 0 条评论,228人围观)

还没有评论,来说两句吧...

相关阅读

    相关 Redisson

    读写锁 一次只有一个线程可以占有写模式的读写锁, 但是可以有多个线程同时占有读模式的读写锁. 正是因为这个特性, 当读写锁是写加锁状态时, 在这个锁被解锁之前, 所有试

    相关

       在java多线程中,我们知道可以用synchronize关键字来实现线程间的同步互斥工作,还有更加优秀的机制去实现同步互斥工作,Lock对象。重入锁和读写锁,他们具有比

    相关 Redisson分布式

    一、公平锁和非公平锁的区别 公平锁和非公平锁在初次抢占资源时是有区别的。公平锁在初次抢占资源时,会判断CHL队列是否有节点,如果队列上有节点,当前线程一定会在CHL上排队

    相关 与非

    可重入锁与非可重入锁 可重入锁又称递归锁,是指同一个线程在外层方法获取锁的时候,再进入该线程的内层方法会自动获取锁(前提是锁对象得是同一个对象),不会因为之前已经获