悲观锁与乐观锁是为了解决不可重复读的问题吗?
1.如果是:
mysql的默认隔离级别是repeatable-read,是没有不可重复读的问题的,是不是就需要用悲观锁与乐观锁了?也就是说,当设置的隔离级别存在不可重复读的问题时,程序里就要用悲观锁或乐观锁来解决?2.如果不是:
那是干嘛用的?有点模糊。。

解决方案 »

  1.   

    在开发中,我们选择使用乐观锁,悲观锁很霸道,不建议使用乐观锁 主要解决数据脏读给你举个例子:
    我和楼主用同一张银行卡,我们同时查询:卡上余额200元,这时,楼主没关浏览器,去厕所了。
    我执行取款100元(此时就是悲观锁定),楼主回来了,再查询,发现只有100元了,一般会报错。
    数据不整合,脏读了。 什么是乐观锁呢? 这时我们需要在再加一个version字段,数据类型为timestamp,我取款就会更新
    这个字段精确到毫秒级。这个字段就是乐观锁。