75-什么是悲观锁,什么是乐观锁?

1,悲观锁是利用数据库本身的锁机制来实现,会锁记录。

实现的方式为:select * from t_table where id = 1 for update

2,乐观锁是一种不锁记录的实现方式,采用CAS模式,采用version字段来作为判断依据。

每次对数据的更新操作,都会对version+1,这样提交更新操作时,如果version的值已被更改,则更新失败。

3,乐观锁的实现为什么要选择version字段,如果选择其他字段,比如业务字段store(库存),那么可能会出现所谓的ABA问题

如下图所示:

img