分布式锁和普通锁有什么区别

1.作用范围

普通锁(本地锁)分布式锁
单个进程或单个计算机内的多个线程之间的同步。当多个线程尝试访问同一资源时,普通锁可以确保只有一个线程可以访问该资源,其他线程需要等待锁的释放。

分布式锁用于跨多个进程或多个计算机之间的同步。允许不同的进程或计算机协调对共享资源的访问,以避免冲突和数据不一致性。

2.锁的获取方式

普通锁(本地锁)分布式锁
  • 普通锁通常是基于本地内存的互斥量或自旋锁实现的,可以通过在内存中的标记或计数器来判断锁的状态,并通过执行CPU自旋等待来获取锁。
  • 分布式锁通常使用基于分布式系统的外部组件或服务,如分布式缓存系统(如Redis)或分布式协调服务(如ZooKeeper)实现。进程或计算机通过与这些组件进行通信来获取和释放锁。

3.可靠性和容错性

普通锁(本地锁)分布式锁
  • 普通锁在单个计算机上运行,受限于该计算机的可靠性和容错性。如果计算机故障或程序崩溃,可能会导致锁被永久占用或意外释放。
  • 分布式锁通过将锁状态存储在外部组件中,可以提供更高的可靠性和容错性。即使其中一个计算机或进程崩溃,其他进程仍然可以通过与外部组件通信来获取锁。

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值