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.需要判断是否有删除锁的权限

中间件

缓存服务,搜索服务,消息队列