在Spinklock中分布式锁的概念

如大家所了解的,锁 = 资源 + 并发控制以我们熟悉的单机锁为例:Spinlock(自旋锁) = BOOL + CAS (乐观锁)Mutex (互斥锁) = BOOL + CAS + 通知 (悲观锁)Spinlock和Mutex所持有的锁是一个互斥量,这个互斥量通常被实现为一个整数值,通过原子操作来控制它的状态。

在 Spinklock 中,线程会循环检查互斥量的状态,直到它处于可用状态。而在 mutex 中,线程会通过系统调用处于阻塞状态,直到互斥量可用才被唤醒。 Spinlock 通过原子的 CAS 指令:当一个线程需要访问共享资源时,它会检查一个标志位,如果标志位为 0 ,则线程可以获取锁,并将标志位设置为 1 。

如果标志位为 1 ,表示锁已经被其他线程占用,当前线程只有一直循环等待,直到它能够成功地将标志位设置 1 。例如 AtomicInteger ,也是通过资源(Interger)+ CAS ,但是不会明确地提示所有权,因此不会被视为一种锁。

如上图所示,任何提供三个特性的服务都可以提供分布式锁的能力,资源可以是文件或者键值对等,通过创建文件,创建键值对等原子操作,通过创建成功的结果来表明所有权的归属,同时通过TTL或者会话来保证锁的可用性。

相关推荐
zhangfeng11331 小时前
天数智芯天垓 100 加密大模型分布式部署安全方案
人工智能·分布式·安全·transformer·gpu算力·芯片
giaz14n9X2 小时前
Redis 分布式锁进阶第五十一篇
数据库·redis·分布式
2603_954708314 小时前
微电网协调控制系统柜的应用场景有哪些?
分布式·安全·架构·能源·需求分析
Amy187021118234 小时前
微电网+虚拟电厂 是新型电力系统中的“组合拳”
分布式·能源
他们叫我阿冠4 小时前
Kafka的基本了解
分布式·kafka
Amy187021118235 小时前
分布式光伏并网新规落地在即,一套监控系统如何打通“四可”合规与收益优化的双重关卡?
分布式
超梦dasgg5 小时前
Java 生产环境分布式定时任务全解(实战落地版)
java·开发语言·分布式
汪小哥6 小时前
kafka 初识
分布式·kafka
Shan12056 小时前
分布式锁的优势与互斥性
分布式