• 博客园logo
  • 会员
  • 众包
  • 新闻
  • 博问
  • 闪存
  • 赞助商
  • HarmonyOS
  • Chat2DB
    • 搜索
      所有博客
    • 搜索
      当前博客
  • 写随笔 我的博客 短消息 简洁模式
    用户头像
    我的博客 我的园子 账号设置 会员中心 简洁模式 ... 退出登录
    注册 登录
xiaoyaovo
博客园    首页    新随笔    联系   管理    订阅  订阅
乐观锁和悲观锁

乐观锁和悲观锁

乐观锁和悲观锁都是一种锁策略,也就是如何设计锁。

乐观锁:认为这个锁出现竞争的概率比较小(当前场景中,线程数目比较少,只是偶尔竞争一下锁)
悲观锁:和乐观锁相反,悲观锁出现竞争的概率比较大(当前场景中,线程数目比较多,很可能涉及竞争锁)

根据乐观锁和悲观锁的比较,可以得知乐观锁需要做的事情会少一些,而悲观锁需要做的事情更多一些。

举个栗子

A 和 B 两个人去爬山
A 比较乐观,只带了一些必要的干粮和水
B 比较悲观,害怕有什么始料不及的事发送,于是备足了干粮、水和应急设施等等。
A (乐观锁)做的事比 B(悲观锁)少很多,爬山速度(运行速度) A 会比 B 快得多,但是如果遇到问题,那么 B 就会比 A 更安全。所以对于悲观锁和乐观锁谁好谁不好,也不好确定,视具体情况而定!

而 Java 中 synchronized 即是悲观锁也是乐观锁,会根据场景自动替换。

posted on 2021-08-15 17:57  豆本豆红枣豆奶  阅读(6)  评论(0)    收藏  举报
刷新页面返回顶部
博客园  ©  2004-2025
浙公网安备 33010602011771号 浙ICP备2021040463号-3