乐观锁及悲观锁

原文参见:http://blog.csdn.net/hongchangfirst/article/details/26004335

悲观锁(Pessimistic Lock), 顾名思义,就是很悲观,每次去拿数据的时候都认为别人会修改,所以每次在拿数据的时候都会上锁,这样别人想拿这个数据就会block直到它拿到锁。传统的关系型数据库里边就用到了很多这种锁机制,比如行锁,表锁等,读锁,写锁等,都是在做操作之前先上锁。

乐观锁(Optimistic Lock), 顾名思义,就是很乐观,每次去拿数据的时候都认为别人不会修改,所以不会上锁,但是在更新的时候会判断一下在此期间别人有没有去更新这个数据,可以使用版本号等机制。乐观锁适用于多读的应用类型,这样可以提高吞吐量,像数据库如果提供类似于write_condition机制的其实都是提供的乐观锁。

最后编辑于
©著作权归作者所有,转载或内容合作请联系作者
平台声明:文章内容(如有图片或视频亦包括在内)由作者上传并发布,文章内容仅代表作者本人观点,简书系信息发布平台,仅提供信息存储服务。

推荐阅读更多精彩内容

  • 一分钟教你知道乐观锁和悲观锁的区别 悲观锁(Pessimistic Lock), 顾名思义,就是很悲观,每次去拿数...
    php红薯阅读 4,567评论 2 58
  • 乐观锁和悲观锁是并发控制主要采用的技术手段。为什么有了事务这东西,还需要乐观锁悲观锁? 比如抢票,假设余票只有1张...
    米刀灵阅读 510评论 0 0
  • 悲观锁 悲观锁(Pessimistic Lock),顾名思义,就是很悲观,每次去拿数据的时候都认为别人会修改,所以...
    FX_SKY阅读 70,432评论 18 106
  • 本质: 悲观锁和乐观锁都是一种概念和认知。数据库有java语言都有对应的实现方式。 悲观锁 悲观锁(Pessimi...
    极简架构阅读 838评论 0 3
  • 声明:本栏目所使用的素材都是凯哥学堂VIP学员所写,学员有权匿名,对文章有最终解释权;凯哥学堂旨在促进VIP学员互...
    凯哥学堂阅读 216评论 0 0