乐观锁和悲观锁

一 概述

1.悲观锁,

       真上锁,只有当前线程可以修改数据,优点是安全,缺点是并发数低

2.乐观锁,

       不上锁,代码逻辑实现,基本原理,加个版本号,修改数据会同步修改版号,一个线程修改数据前,先获取版本号,然后使用获取的版本号修改数据,若期间有线程修改数据则版本会变动,那么本线程将不会改到数据,修改结果返回记录0,程序捕获结果进行后续处理。

       优点是不安全,缺点是并发数高

 

二 实例

1. 乐观锁

表中加一个version字段
select version from business where id = 100
update

  business
set
  total = 6666
where
  id = 100
  and version = "上条语句查到的version"
若此时有其它线程修改数据,会修改version,那么本线程使用之前查询的version不会修改到数据,
反应到结果上,修改条数为0,此时代码获取到结果后可以做一些异常处理


 

posted @ 2024-08-14 17:38  qx和世界  阅读(26)  评论(0)    收藏  举报