![](https://img-blog.csdnimg.cn/20201014180756724.png?x-oss-process=image/resize,m_fixed,h_64,w_64)
分布式锁
锁
雷小农
舒服是留给死人的
展开
-
多线程Synchronized锁的升级原理。
偏向锁,轻量级锁,重量级锁概念:原创 2019-12-28 23:27:27 · 302 阅读 · 0 评论 -
Synchronized的几种用法
我们都知道Synchronized是线程安全同步用的,大部分程序可能只会用到同步方法上面,其实Synchronized可以用到更多的场合,以下列举几种用法供大家参考。 1,同步普通方法 这个也是我们用得最多的,只要涉及线程安全,上来就给方法来个同步锁。这种方法使用虽然最简单,但是只能作用在单例上面,如果不是单例,同步方法锁将失效。 /** * 用在普通方法 */ private synchro...原创 2019-12-28 23:08:32 · 2498 阅读 · 0 评论 -
分布式锁概念及三种实现方式
一,分布式锁要解决的问题 为了保证一个方法或属性在高并发情况下的同一时间只能被同一个线程执行,在传统单体应用单机部署的情况下,可以使用Java并发处理相关的API(如ReentrantLock或Synchronized)进行互斥控制。在单机环境中,Java中提供了很多并发处理相关的API。但是,随着业务发展的需要,原单体单机部署的系统被演化成分布式集群系统后,由于分布式系统多线程、多进程并且分布在...原创 2019-07-21 10:23:13 · 409 阅读 · 0 评论 -
乐观锁和悲观锁(cas算法)即使用场景
悲观锁 总是假设最坏的情况,每次去拿数据的时候都认为别人会修改,所以每次在拿数据的时候都会上锁,这样别人想拿这个数据就会阻塞直到它拿到锁(共享资源每次只给一个线程使用,其它线程阻塞,用完后再把资源转让给其它线程)。传统的关系型数据库里边就用到了很多这种锁机制,比如行锁,表锁等,读锁,写锁等,都是在做操作之前先上锁。Java中synchronized和ReentrantLock等独占锁就是悲观锁思想...原创 2019-07-22 23:34:45 · 484 阅读 · 0 评论 -
redisson分布式锁原理
锁的原理 在Redisson中,使用key来作为是否上锁的标志,当通过getLock(String key)方法获得相应的锁之后,这个key即作为一个锁存储到Redis集群中,在接下来如果有其他的线程尝试获取名为key的锁时,便会向集群中进行查询,如果能够查到这个锁并发现相应的value的值不为0,则表示已经有其他线程申请了这个锁同时还没有释放,则当前线程进入阻塞,否则由当前线程获取这个锁并将va...原创 2019-08-01 22:10:13 · 2075 阅读 · 0 评论