什么是悲观锁和乐观锁
时间: 2023-12-18 16:25:43 浏览: 110
乐观锁和悲观锁
悲观锁和乐观锁是并发控制中常用的两种策略。
悲观锁(Pessimistic Locking)是一种较为保守的并发控制策略,它假设在数据操作过程中很可能会有其他并发操作发生冲突,因此会在访问数据前先获取锁,确保其他线程无法修改该数据。如果获取锁失败,线程就会进入等待状态,直到获取到锁。悲观锁常用的实现方式是使用数据库的行级锁或表级锁。
乐观锁(Optimistic Locking)则是一种乐观的并发控制策略,它相信在数据操作过程中不会有冲突发生。线程在读取数据时,不会加任何锁。而在写入数据时,会先比对之前读取到的数据是否发生变化。如果没有变化,则继续执行写操作;如果有变化,则表示有其他线程修改了数据,当前线程需要重新读取最新的数据并再次尝试写操作。乐观锁常用的实现方式是使用版本号(或时间戳)来标识数据的版本,在写入时进行比较。
阅读全文