成功的路上总是离不开贵人的帮助,名师的指点和小人的刺激。

莫怕,过了桥,就翻篇了

随笔分类 - 

锁相关概念
基于redis实现分布式锁
摘要:相对于利用数据库实现分布式锁,利用redis来实现分布式锁,有以下几个优点 优点: 1.可以集群部署的,可以解决单点问题。 2.自带过期时间可以解决死锁问题。 可靠性介绍 利用redis语句加锁。 set key value nx ex 2 解锁 delete key 问题所在: 虽然可以加入失效时 阅读全文

posted @ 2019-03-25 15:53 痞子陈2016 阅读(252) 评论(0) 推荐(0)

基于数据库实现分布式锁
摘要:1.基于数据库表的实现 首先创建一张锁表 这里将方法名做唯一性约束 当我们想锁住某个方法时,可以根据方法名insert一条语句 这时如果有另外一个线程要调用支付的方法,由于违反了数据库唯一性的约束,会抛出异常,因此可以认定为拿不到锁,当拿到锁的方法执行完业务代码后,最后释放锁的时候 再执行一条del 阅读全文

posted @ 2019-01-20 16:20 痞子陈2016 阅读(546) 评论(0) 推荐(0)

分布式锁
摘要:1.前沿 上几篇文章分别介绍了数据库里面的锁及java里面的锁,大概了解到锁就是为了数据的一致性,防止出现数据错乱,但是单机环境下用java的syn和lock来实现多线程异步执行的同步性,能 有效解决高并发的问题,但是实际中大公司往往为了实现系统的高可用,会选择分布式集群部署。因此如果单纯的靠syn 阅读全文

posted @ 2019-01-20 15:04 痞子陈2016 阅读(197) 评论(0) 推荐(0)

阻塞锁,非阻塞锁,自旋锁,互斥锁
摘要:1.阻塞锁 多个线程同时调用同一个方法的时候,所有线程都被排队处理了。让线程进入阻塞状态进行等待,当获得相应的信号(唤醒,时间) 时,才可以进入线程的准备就绪状态,准备就绪状态的所有线程,通过竞争,进入运行状态。 但是由于被调用的方法越耗时,线程越多的时候,等待的线程等待的时间也就越长,甚至于几分钟 阅读全文

posted @ 2019-01-20 14:14 痞子陈2016 阅读(6597) 评论(2) 推荐(1)

可重入锁和不可重入锁,递归锁和非递归锁
摘要:首先引入概念: 可重入锁:广义上的可重入锁指的是可重复可递归调用的锁,在外层使用锁之后,在内层仍然可以使用,并且不发生死锁(前提得是同一个对象或者class),这样的锁就叫做可重入锁, java里面最常见的锁,ReentrantLock和synchronized都是可重入锁 不可重入锁:不可重入锁, 阅读全文

posted @ 2019-01-19 22:47 痞子陈2016 阅读(1700) 评论(1) 推荐(4)

乐观锁,悲观锁,表锁,行锁,共享锁,排他锁
摘要:乐观锁 乐观锁是指操作数据库时(更新操作),想法很乐观,认为这次的操作不会导致冲突,在操作数据时,并不进行任何其他的特殊处理(也就是不加锁),而在进行更新后,再去判断是否有冲突了。 实现方式1:在表中的数据进行操作时(更新),先给数据表加一个版本(version)字段,每操作一次,将那条记录的版本号 阅读全文

posted @ 2019-01-18 23:23 痞子陈2016 阅读(253) 评论(0) 推荐(0)

导航