乐观锁和悲观锁

14-10-06 11:34 23376 0 技术

乐观锁和悲观锁是两种并发控制策略,用于解决多线程或多进程访问同一资源时的数据一致性问题。

乐观锁

  • 概念:假设数据很少被修改,因此不会在数据访问前加锁。
  • 机制:读取数据时不加锁,更新时检查数据是否被修改(通常通过版本号或时间戳)。如果数据没有变化,则提交修改;否则,操作失败,需要重试。
  • 适用场景:适合读多写少的场景,避免因频繁加锁导致的性能问题。

悲观锁

  • 概念:假设数据会被频繁修改,因此在访问前加锁。
  • 机制:读取或修改数据时加锁,确保同一时间只有一个事务可以操作数据。其他尝试获取锁的事务会被阻塞,直到锁被释放。
  • 适用场景:适合写多读少的场景,需要严格控制数据一致性。

例子

  • 乐观锁:电商网站的库存管理系统,用户读取商品信息时不加锁,提交订单时检查库存是否改变。
  • 悲观锁:银行转账系统,在进行账户余额更新时加锁,以确保数据一致性。

选择使用哪种锁策略取决于系统的读写比例和对并发的要求。

请登录后发表评论 点击登录

文章归档

文章日历

2024 年 12 月
01 02 03 04 05 06 07
08 09 10 11 12 13 14
15 16 17 18 19 20 21
22 23 24 25 26 27 28
30 31 01 02 03 04 05

文章标签

最新评论

友情链接