开发者社区 问答 正文

[@倚贤][¥20]悲观锁乐观锁如何取舍?

问题来自Java技术沙龙的李磊
Java线下沙龙报名链接:https://yq.aliyun.com/activity/796

展开
收起
李博 bluemind 2018-12-07 14:14:26 2143 分享 版权
2 条回答
写回答
取消 提交回答
  • 一线互联网开发者

    如update xx set ,..where version这个sql就是一个乐观锁,在更新失败之后进行retry或者回滚。
    select * from xx where ... for update 这就是悲观锁。强制锁定记录,如果被锁则等待获取锁。

    悲观锁性能比较差,乐观锁性能较好。应该根据具体场景进行使用

    2019-07-17 23:18:47
    赞同 展开评论
  • 1.阿里云大学荣誉讲师, 2.MongoDB中文社区专家

    1、绝大部分情况下我们使用的都是悲观锁,数据库事务,数据互斥,多线程互斥。保证数据的一致性。
    2、乐观锁,为了并发,放弃了数据一致性,一般是维基百科,这样的场景才会使用,有个前提,放弃一致性的场景。

    2019-07-17 23:18:46
    赞同 展开评论
问答分类:
问答地址: