锁( locking )

业务逻辑的实现过程中,往往需要保证数据访问的排他性。如在金融系统的日终结算

处理中,我们希望针对某个 cut-off 时间点的数据进行处理,而不希望在结算进行过程中

(可能是几秒种,也可能是几个小时),数据再发生变化。此时,我们就需要通过一些机

制来保证这些数据在某个操作过程中不会被外界修改,这样的机制,在这里,也就是所谓

的 “ 锁 ” ,即给我们选定的目标数据上锁,使其无法被其他程序修改。

Hibernate 支持两种锁机制:即通常所说的 “ 悲观锁( Pessimistic Locking ) ”

和 “ 乐观锁( Optimistic Locking ) ” 。

悲观锁( Pessimistic Locking )

悲观锁,正如其名,它指的是对数据被外界(包括本系统当前的其他事务,以及来自

外部系统的事务处理)修改持保守态度,因此,在整个数据处理过程中,将数据处于锁定

状态。悲观锁的实现,往往依靠数据库提供的锁机制(也只有数据库层提供的锁机制才能

真正保证数据访问的排他性,否则ÿ

数据库中乐观锁与悲观锁的概念相关推荐

  1. 数据库中的乐观锁与悲观锁详解

    目录 悲观锁 乐观锁 悲观锁实现方式 乐观锁实现方式 如何选择 悲观锁 当我们要对一个数据库中的一条数据进行修改的时候,为了避免同时被其他人修改,最好的办法就是直接对该数据进行加锁以防止并发. 这种借 ...

  2. 数据库中的乐观锁与悲观锁

    悲观锁 当我们要对一个数据库中的一条数据进行修改的时候,为了避免同时被其他人修改,最好的办法就是直接对该数据进行加锁以防止并发. 这种借助数据库锁机制在修改数据之前先锁定,再修改的方式被称之为悲观并发 ...

  3. 聊一聊数据库中的锁分类(乐观锁、悲观锁、共享锁、排它锁、表级锁、行级锁、页面锁)...

    乐观锁和悲观锁(从策略上划分) 乐观锁:乐观锁就如同他的名字一样,非常了乐观,每次去读数据都认为其它事务没有在写数据,总是认为别人不会修改数据,所以就不上锁,只有在线程提交数据时会通过检查版本号的形式 ...

  4. 【转】数据库的乐观锁和悲观锁

    [转]数据库的乐观锁和悲观锁 有时候为了得到最大的性能,一般数据库都有并发机制,不过带来的问题就是数据访问的冲突.为了解决这个问题,大多数数据库用的方法就是数据的锁定.所以说,悲观锁和乐观锁主要是用来 ...

  5. 数据库并发控制,选择乐观锁还是悲观锁?

    出处:http://www.cnblogs.com/chenlulouis/  今天,在这里,我们将讨论的是在实际生产过程中,对于并发控制你是选择乐观锁还是悲观锁.这两种锁各自的应用环境应该怎样选择? ...

  6. Java开发技巧——并发控制中的乐观锁与悲观锁

    1.为什么需要锁? 在多用户环境中,在同一时间可能会有多个用户新相同的记录,这会产生冲突.这就是的并发性问题. 2.典型的冲突类型: (1)丢失新:一个事务的新覆盖了其它事务的新结果,就是所谓的新丢失 ...

  7. 并发编程中常见的锁机制:乐观锁、悲观锁、CAS、自旋锁、互斥锁、读写锁

    文章目录 乐观锁 VS 悲观锁 悲观锁 乐观锁 CAS CAS机制 ABA问题 CAS的优缺点 互斥锁 VS 自旋锁 互斥锁 自旋锁 对比及应用场景 读写锁 实现方式 读写锁 VS 互斥锁 乐观锁 V ...

  8. 程序员过关斩将--数据库的乐观锁和悲观锁并非真实的锁

    菜菜哥,告诉你一个消息 你有男票啦? 非也非也,我昨天出去偷偷面试,结果又挂了 哦,看来公司是真的不想让你走呀 面试官让我说一下乐观锁和悲观锁,我没回答上来,回来之后我查了,数据库没有这两种锁呀 了解 ...

  9. mysql乐观锁与事务_[数据库事务与锁]详解七: 深入理解乐观锁与悲观锁

    注明: 本文转载自http://www.hollischuang.com/archives/934 在数据库的锁机制中介绍过,数据库管理系统(DBMS)中的并发控制的任务是确保在多个事务同时存取数据库 ...

  10. 程序员过关斩将——数据库的乐观锁和悲观锁并非真实的锁

    作者 | 菜菜 责编 | 刘静 YY妹:菜菜哥,告诉你一个消息 菜菜:你有男票啦? YY妹:非也非也,我昨天出去偷偷面试,结果又挂了 菜菜:哦,看来公司是真的不想让你走呀 YY妹:面试官让我说一下乐观 ...

最新文章

  1. The Elements of Statistical Learning的笔记
  2. pg多行合并为逗号分隔一行_postgresql 将逗号分隔的字符串转为多行的实例_PostgreSQL_数据库...
  3. python拿什么做可视化界面好-用python打造可视化爬虫监控系统,酷炫的图形化界面...
  4. abap 选择屏幕事件AT SELECTION-SCREEN
  5. spring,Whitelabel Error Page,This application has no explicit mapping for /error, so you are seeing
  6. 20155230 2016-2017-2 《Java程序设计》第十周学习总结
  7. mysql 严格模式查看,如何查找和禁用MySQL严格模式?
  8. flowable实战(八)flowable核心数据库表详细表字段说明
  9. hive解绑邮箱_django使用QQ企业邮箱发送邮件
  10. 郭明錤:华为可能在10月开始出货鸿蒙手机
  11. 深度学习 --- 优化入门四(Batch Normalization(批量归一化)一)
  12. java计算机毕业设计九宫格日志网站源码+数据库+系统+lw文档+mybatis+运行部署
  13. css border设置为透明
  14. K线技术指标实现详解—KDJ
  15. 【Love2d从青铜到王者】第十一篇:Love2d之图像(Images)
  16. 图片怎么转文字?建议收藏这些方法
  17. 七阶拉丁方阵_关于拉丁方阵教学的思考
  18. beini奶瓶-无线网络蹭网破解-简明说明
  19. Jquery点击事件触发多次解决办法
  20. Java博客项目(重点)

热门文章

  1. SpringBoot整合WebSocket实现简易聊天室
  2. 分享一个开源的古诗词数据库(约7w+古诗词/3k+诗人)
  3. 商业摄影之手表实拍案列
  4. 小糊涂学symbian日记(5)(转)
  5. 对提倡加班的奇文的思考
  6. 程序员的数学课04 万物可数学,经典公式是如何在生活中应用的?
  7. 为啥SSL证书会过期!
  8. 向外管理之政治与协商
  9. SQL进阶知识(八)——TRUNCATE TABLE 命令
  10. 【物理学术竞赛】——绳上的球