乐观锁

乐观锁指的是在获取数据时,乐观的表示数据不会被修改,所以不会在获取数据时就上锁,只有在最后写入数据时,去判断数据是否被修改过

实现

CAS

使用数据来实现

给数据添加一个版本字段version,更新的时候同时将version字段+1,并且更新条件也需要带上version

update table_xxx set name='小明',version=version+1 where version=1 a

使用情况

在读取较多,写入较少的情况下使用

悲观锁

悲观锁指的是在获取数据的时候,认定数据会被修改,在获取数据时就上锁

使用情况

在写入较多的情况下使用