当前位置: 移动技术网 > IT编程>数据库>Oracle > 怎么利用数据库做分布式共享锁

怎么利用数据库做分布式共享锁

2020年07月30日  | 移动技术网IT编程  | 我要评论

一、 适用环境

1. 数据库集群模式(1主多从)

2. 单机数据库

3. 数据库必须提供行级锁功能

 

二、 原理:cas算法

 

代码

 
 
// 更新当前值为new

updateCurrentValue(id new, old);

 old:通过id 查到的值

 new:期望的值

 id:表的主键

 

UPDATE user t SET t.CURRENT_VALUE=:new WHERE t.ID =:id AND t.CURRENT_VALUE=:old

三 原理解析

1. 通过id获取CURRENT_VALUE的值作为old

2. 多线程情况下,有线程A更新了CURRENT_VALUE的值,那么当前线程更新就不成功。因为t.CURRENT_VALUE和old的值不相等。因为是行级锁,更新表数据的时候,只有一个线程执行。所以可以保证可以作为分布式共享锁

 

本文地址:https://blog.csdn.net/zhou920786312/article/details/107676304

如对本文有疑问, 点击进行留言回复!!

相关文章:

验证码:
移动技术网