乐观锁: 一般根据版本控制
很乐观,认为别人都不会更新他的数据,所以每次更新前先查询,等到更新的时候再拿这个数据做比对,如果没问题就更新,有问题将错误返回;
高并发场景会导致更新失败的几率增大
悲观锁: 要注意预防死锁的发生;
很悲观,认为别人每次都想要更新他的数据,所以每次更新前都要上锁,别人想要更新数据必须等到其他锁释放了才能更新。
悲观锁依赖数据库锁,效率低。更新失败的概率比较低
乐观锁: 一般根据版本控制
很乐观,认为别人都不会更新他的数据,所以每次更新前先查询,等到更新的时候再拿这个数据做比对,如果没问题就更新,有问题将错误返回;
高并发场景会导致更新失败的几率增大
悲观锁: 要注意预防死锁的发生;
很悲观,认为别人每次都想要更新他的数据,所以每次更新前都要上锁,别人想要更新数据必须等到其他锁释放了才能更新。
悲观锁依赖数据库锁,效率低。更新失败的概率比较低