乐观锁与悲观锁
乐观锁
乐观锁其实本质没有使用任何锁,原名是乐观并发控制(Optimistic Concurrency Control)。原理是乐观的假设不会发生冲突,只有在真正更新数据时才会检查是否冲突。通常使用版本号等实现。
使用场景:
- 冲突少的场景下
在数据库中的使用方法如下:123select status, version from goods where id=xxx对数据做一些修改update goods set status=2, version=version+1 where id=xxx and version={version}
悲观锁
悲观锁是悲观的认为会发生冲突,所以需要拿到锁之后再对数据做一些操作。
使用场景:
- 冲突多的场景
在数据库中使用方法如下:
|
|