CountDownLatch:闭锁
加锁的优化
1.缩短加锁时间 2.细粒度的加锁 3.锁分离
公平锁:ReentrantLock 非公平锁:synchronized,ReentrantLock,CAS
分布式锁:
1.互斥性:同一时间只有一个客户端可以获取 2.防死锁:即使有一个客户端在有锁期间崩溃而没解锁,后续其他客户端也能加锁 3.持锁人解锁:加锁解锁必须同一个客户端 4.可重入
Redis分布式锁流程图
Redis-Server Lock
1.竞争锁 2.设置锁的有效期 3.获得锁的线程 4.分配唯一标识
Redis-Server UnLock
1.有效期到了自动解锁 2.操作完成主动解锁 3.需要判断是否有删除锁的权限
中间件
缓存服务,搜索服务,消息队列