开发者社区> 问答> 正文

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

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

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

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

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

    2019-07-17 23:18:47
    赞同 展开评论 打赏
  • 1.阿里云大学讲师,主讲《微服务Spring Cloud设计与开发实战》《MongoDB高级实战》等课程 2.MongoDB中文社区专家 3.《MongoDB实战》第2版译者 5.吉林大学计算机科学学士、上海交通大学硕士

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

    2019-07-17 23:18:46
    赞同 展开评论 打赏
问答分类:
问答地址:
问答排行榜
最热
最新

相关电子书

更多
基于HLC的分布式事务实现深度剖析 立即下载
深入理解分布式事务:原理与实战(试读版) 立即下载
低代码开发师(初级)实战教程 立即下载