![](https://img-blog.csdnimg.cn/20201014180756724.png?x-oss-process=image/resize,m_fixed,h_64,w_64)
lock
文章平均质量分 67
knowledge are power
这个作者很懒,什么都没留下…
展开
-
Java之——redis并发读写锁,使用Redisson实现分布式锁
转载可重入锁(Reentrant Lock)Redisson的分布式可重入锁RLock Java对象实现了java.util.concurrent.locks.Lock接口,同时还支持自动过期解锁。public void testReentrantLock(RedissonClient redisson){ RLock lock = redisson.getLock("anyLock"); try{ // 1. 最常见的使用方法 //lock.lock(); // 2. 支持过期解原创 2022-02-10 17:47:27 · 715 阅读 · 0 评论 -
单体应用下redis缓存穿透的解决方案(锁方式)
案例:多线程同时进入查询,缓冲查询无意义 @GetMapping("/details/{id}") @ResponseBody public Student getOneDetails(@PathVariable Integer id){ for (int i = 0; i < 50; i++) { ExecutorService ...原创 2020-03-29 22:25:56 · 386 阅读 · 0 评论 -
zookeeper分布式锁的实现
实现原理当一个客户端成功创建一个节点,另外一个客户端是无法创建同名的节点(达到互斥的效果)我们注册该节点的监听时间,当节点删除,会通知其他的客户端,这个时候其他的客户端可以重新去创建该节点(可以认为时拿到锁的客户端释放锁,其他的客户端可以抢锁)创建的节点应该时临时节点,这样保证我们在已经拿到锁的客户端挂掉了会自动释放锁zk锁基类package zklock; import org.I0Itec.zkclient.ZkClient; public abstract class Abstr原创 2022-01-04 22:01:35 · 1036 阅读 · 0 评论 -
Jedis实现分布式锁
使用锁的目的多个外部线程同时来竞争使用同一资源时,会彼此影响,导致混乱,然后锁的目的,就是将资源的使用做排它性处理,使同一时间,仅一个线程能访问资源如何理解线程安全的类1:无成员变量/成员变量不存在变化的类,就是无状态类 ----- 这种类是线程安全的2:如果成员变量状态变化是原子的(即没有中间变迁过程,变化不需要时间,没有中间态) ---- 那么它一样是线程安全的锁的本质锁要解决的问题是 ------- 资源数据会不一致锁要达成的目标是 ------- 让资源使用起来,像原子性一样锁达成目原创 2020-09-07 07:04:33 · 476 阅读 · 0 评论