目录
一、前言
redisson的分布式锁在实际开发中经常遇到,这里将详细介绍各种Lock的源码,通过源码来了解每个Lock的使用,以及介绍相关示例。主要涉及的Lock如下:
void lock()
void lock(long leaseTime,TimeUnit unit)
boolean tryLock()
boolean tryLock(long waitTime, long leaseTime, TimeUnit unit)
boolean trylock(long waitTime,TimeUnit unit)
void unlock()
二、Lock源码解析
2.1、lock()源码
—>进入RedissonLock类 lock(long leaseTime, TimeUnit unit, boolean interruptibly) 默认是lock(-1,null,false)
====说明:
其他线程抢夺不到锁,会阻塞等待在这里 【没加过期时间,会默认30秒,有启动看门狗】
private void lock(long leaseTime