乐观锁和悲观锁 :知识总结(一)
程序员文章站
2022-06-02 08:56:01
...
乐观锁:
相对比较乐观,进行更新的时候,并不会刻意的上锁,只会对该字段进行一个判断,判断是否修改过。可能会导致更新失败
使用场合:
秒杀、比较适合读取操作比较频繁的场景
案例:
实现乐观锁的两种方式:利用版本号或者时间戳
UPDATE TABLE SET CL1 = "TEST",VERSION = VERSION + 1 WHERE VERSION = 1
如果提交的数据版本号大于数据库表当前版本号,则予以更新,否则认为是过期数据
悲观锁:
好比一个非常小气的人吃东西,躲到一个房间让后把门关到,不给别人看见。每次进行更新的时候,会进行加锁(读锁、写锁、行锁等),其他的线程不能执行任何操作,会进入一个等待状态
使用场合:
比较适合写入操作比较频繁的场合