乐观锁悲观锁区别是什么?
悲观锁(Pessimistic Lock) 在每次拿数据时都会上锁,传统的关系型数据库里边经常用到用到比如行锁,表锁等,读锁,写锁等,都是在做操作之前先上锁。在整个数据处理过程中,将数据处于锁定状态。悲观锁的实现,主要依靠数据库提供的锁机制。
乐观锁(Optimistic Lock) 每次拿数据的时候都不会上锁,在更新的时候会判断一下在此期间别人有没有去更新这个数据。乐观锁适用于多读的应用类型,这样可以提高吞吐量。
区别 两种锁各有优缺点,乐观锁适用于写比较少的情况下,即冲突真的很少发生的时候,这样可以省去了锁的开销,加大了系统的整个吞吐量。悲观锁适用于经常产生冲突,上层应用会不断的进行retry。
赞1
踩0