美文网首页
如何基于MySQL的行锁来实现悲观锁?

如何基于MySQL的行锁来实现悲观锁?

作者: AlexWillBeGood | 来源:发表于2021-01-04 15:09 被阅读0次

    首先仅仅加上selelct for update是不足够的,还必须利用事务保证操作的原子性。


    image.png

    保证不会出现多线程并发问题:

    • 原子性(开启事务,只有在执行完所有操作之后才释放掉锁)
    • 行锁 (确保只有一个线程能够回去到对应记录,其他线程阻塞,直到占用线程释放)

    仅仅使用事务保证原子性:
    其他线程还是可以获取记录进行覆盖。

    仅仅使用了行锁:
    MySQL的每一个操作都是开启事务的,并且会自动提交,仅仅加入行锁,第一步操作后就事务提交释放,依旧会被覆盖记录。

    相关文章

      网友评论

          本文标题:如何基于MySQL的行锁来实现悲观锁?

          本文链接:https://www.haomeiwen.com/subject/yxdvoktx.html