ZooKeeper 分布式锁 Curator 源码 03:可重入锁并发加锁
在了解了加锁和锁重入之后,最需要了解的还是在分布式场景下或者多线程并发加锁是如何处理的?
ZooKeeper 分布式锁 Curator 源码 02:可重入锁重复加锁和锁释放
加锁逻辑已经介绍完毕,那当一个线程重复加锁是如何处理的呢?
ZooKeeper 分布式锁 Curator 源码 01:可重入锁
一般工作中常用的分布式锁,就是基于 Redis 和 ZooKeeper,前面已经介绍完了 Redisson 锁相关的源码,下面一起看看基于 ZooKeeper 的锁。也就是 Curator 这个框架。
Redisson 分布式锁源码 10:读写锁
Redisson 还支持可重入读写锁,允许在分布式场景下,同时有多个读锁和一个写锁处于加锁状态。
Redisson 分布式锁源码 11:Semaphore 和 CountDownLatch
Redisson 除了提供了分布式锁之外,还额外提供了同步组件,Semaphore 和 CountDownLatch。
Redisson 分布式锁源码 09:RedLock 红锁的故事
RedLock 红锁,是分布式锁中必须要了解的一个概念。 但是不建议使用 Redisson 实现的 Redis 的红锁。
Redisson 分布式锁源码 08:MultiLock 加锁与锁释放
基于 Redis 的 Redisson 分布式联锁 RedissonMultiLock 对象可以将多个 RLock 对象关联为一个联锁,每个 RLock 对象实例可以来自于不同的 Redisson 实例。
Redisson 分布式锁源码 07:公平锁释放
公平锁的释放同样分为主动释放和超时释放。
Redisson 分布式锁源码 06:公平锁排队加锁
加锁失败被放到等待队列之后,线程是如何处理的?
Redisson 分布式锁源码 05:公平锁加锁
分布式公平锁是如何实现的?
Redisson 分布式锁源码 04:可重入锁释放
前面已经了解到了,可重入锁加锁,看门狗以及锁的互斥阻塞。当锁加锁成功之后,锁是如何释放的?
Redisson 分布式锁源码 03:可重入锁互斥
看过可重入锁的 Lua 脚本,已经可以知道当锁存在时,是会加锁失败的。下面看一下,加锁失败之后是如何处理的呢?