锁总结

锁的名词

  • 自旋锁 ,自旋锁的其他种类,阻塞锁,可重入锁 ,读写锁 ,互斥锁 ,悲观锁 ,乐观锁 ,公平锁 ,偏向锁, 对象锁,线程锁,锁粗化, 锁消除,轻量级锁,重量级锁, 信号量,独享锁,共享锁,分段锁

分布式锁

实现条件

1、在分布式系统环境下,一个方法在同一时间只能被一个机器的一个线程执行;
2、高可用的获取锁与释放锁;
3、高性能的获取锁与释放锁;
4、具备可重入特性;
5、具备锁失效机制,防止死锁;
6、具备非阻塞锁特性,即没有获取到锁将直接返回获取锁失败

实现方式

  • 基于数据库
  • 基于redis
  • 基于zookeeper

实现思想

  1. 向锁端请求获取并占有锁资源 tryLock()
  2. 如果锁资源存在,则获取锁成功,否则立刻返回失败
  3. 获取锁成功后,进行业务处理,获取锁失败,稍后重新尝试获取锁,或直接业务失败
  4. 业务处理完成后,向锁端请求并释放锁资源 unLock()

博客